JAVA中的枚举类型
2017-07-14 16:23
423 查看
在JAVA中,枚举类型的使用需要借助“enum”关键字,下面讨论有关枚举类型的使用及注意事项。
先看一段代码:
import java.util.*;
public class Spiciness {
public enum Spic{
NOT,MILD,MEDIUM,HOT,FLAMING
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Spic howHot = Spic.MEDIUM;
System.out.println(howHot);
}
}此程序输出结果为:
上述程序创建了一个名为Spic的枚举类型,内含五个具名值,按照命名规则,常量用大写字母表示。当创建enum类型时,编译器自动创建toString()方法,以便方便显示某个enum实例的名字,另外还会自动创建ordinal()方法,用来表示某个enum常量的声明顺序,以及static values()方法,用来按照enum常量的声明顺序,产生由这些常量构成的数组,以下代码说明了此点:
import java.util.*;
public class Spiciness {
public enum Spic{
NOT,MILD,MEDIUM,HOT,FLAMING
}
public static void main(String[] args) {
// TODO Auto-generated method stub
for(Spic s : Spic.values()){
System.out.println(s+".ordinal " + s.ordinal());
}
}
}此程序运行结果为:
“enum”关键字为enum生成对应的类时,产生了某些编译器行为,在很大程度上,可以将enum当做其它任何类来处理,其具有自己的方法,可以在switch中应用,如下代码:
import java.util.*;
public class Spiciness {
public enum Spic{
NOT,MILD,MEDIUM,HOT,FLAMING
}
Spic degree;
public Spiciness(Spic degree){
this.degree = degree;
}
public void describe(){
System.out.print("This burrito is ");
switch(degree){
case NOT: System.out.println("not spicy at all.");
break;
case MILD:
case MEDIUM: System.out.println("a little hot.");
break;
case HOT:
case FLAMING:
default: System.out.println("maybe too hot.");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Spiciness plain = new Spiciness(Spic.NOT),
greenChile = new Spiciness(Spic.MEDIUM),
jalapeno = new Spiciness(Spic.HOT);
plain.describe();
greenChile.describe();
jalapeno.describe();
}
}
此程序运行结果为:
由于switch要在有限的可能值集合中选取,所以与neum配合使用效果会很好,大体上,可以将neum用作另一种创建数据类型的方式,直接将所得到的类型拿来使用。
先看一段代码:
import java.util.*;
public class Spiciness {
public enum Spic{
NOT,MILD,MEDIUM,HOT,FLAMING
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Spic howHot = Spic.MEDIUM;
System.out.println(howHot);
}
}此程序输出结果为:
上述程序创建了一个名为Spic的枚举类型,内含五个具名值,按照命名规则,常量用大写字母表示。当创建enum类型时,编译器自动创建toString()方法,以便方便显示某个enum实例的名字,另外还会自动创建ordinal()方法,用来表示某个enum常量的声明顺序,以及static values()方法,用来按照enum常量的声明顺序,产生由这些常量构成的数组,以下代码说明了此点:
import java.util.*;
public class Spiciness {
public enum Spic{
NOT,MILD,MEDIUM,HOT,FLAMING
}
public static void main(String[] args) {
// TODO Auto-generated method stub
for(Spic s : Spic.values()){
System.out.println(s+".ordinal " + s.ordinal());
}
}
}此程序运行结果为:
“enum”关键字为enum生成对应的类时,产生了某些编译器行为,在很大程度上,可以将enum当做其它任何类来处理,其具有自己的方法,可以在switch中应用,如下代码:
import java.util.*;
public class Spiciness {
public enum Spic{
NOT,MILD,MEDIUM,HOT,FLAMING
}
Spic degree;
public Spiciness(Spic degree){
this.degree = degree;
}
public void describe(){
System.out.print("This burrito is ");
switch(degree){
case NOT: System.out.println("not spicy at all.");
break;
case MILD:
case MEDIUM: System.out.println("a little hot.");
break;
case HOT:
case FLAMING:
default: System.out.println("maybe too hot.");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Spiciness plain = new Spiciness(Spic.NOT),
greenChile = new Spiciness(Spic.MEDIUM),
jalapeno = new Spiciness(Spic.HOT);
plain.describe();
greenChile.describe();
jalapeno.describe();
}
}
此程序运行结果为:
由于switch要在有限的可能值集合中选取,所以与neum配合使用效果会很好,大体上,可以将neum用作另一种创建数据类型的方式,直接将所得到的类型拿来使用。
相关文章推荐
- Java的枚举类型使用方法详解
- Java的枚举类型使用方法详解
- Java语言中的枚举类型
- Java下枚举变量与其他数据类型的转换
- java 枚举类型
- Java的枚举类型用法介绍
- Java Design Demo--枚举类型--避免嵌套过多
- JAVA枚举类型
- JAVA进阶之旅(一)——增强for循环,基本数据类型的自动拆箱与装箱,享元设计模式,枚举的概述,枚举的应用,枚举的构造方法,枚举的抽象方法
- C#与Java对比学习:数据类型、集合类、栈与队列、迭达、可变参数、枚举
- C#与Java对比学习:数据类型、集合类、栈与队列、迭达、可变参数、枚举
- java 控制流程 &枚举类型 enum 的用法 & 带标签的break语句 &continue语句
- 深度分析Java的枚举类型—-枚举的线程安全性及序列化问题
- java特性之Enum枚举类型
- JAVA入门基础--浅谈枚举Enum类型
- Java枚举类型
- 类型码,似乎是对于构造成java枚举类似的应用。
- Java 枚举类型设置数据字典
- JAVA进阶之旅(一)——增强for循环,基本数据类型的自动拆箱与装箱,享元设计模式,枚举的概述,枚举的应用,枚举的构造方法,枚举的抽象方法
- 深度分析 Java 的枚举类型:枚举的线程安全性及序列化问题