enum(枚举)
2011-06-10 13:41
190 查看
什么是enum(枚举):
enum是java语言关键字, 允许通过该关键字创建一个具有名的值的新类型,而这些具有名的值可以作为常规的程序组件使用。
enum基本的特性:
1. 调用enum的values方法返回一个enum实例的数组,可以循环使用values()返回的数组。
view plaincopy to clipboardprint?
//当使用关键字enum定义一个Enum类型时,编译器会自动为你生成一个类。
//这个类继承自java.lang.Enum。 Enum是一个抽象类, 实现了Comparable接口,Serializable接口
//所以可以调用compareTo方法进行enum实例的比较。Enum也实现了equals方法,
//hashCode方法。 可以使用 == 来比较两个enum实例是否相等.
public enum Shrubbery{
GROUND, CRAWLING, HANGING
}
public class EnumClass {
public static void main(String[] args) {
for(Shrubbery s : Shrubbery.values()){
//ordinal()方法返回一个int值,这是每个enum实例在声明时的次序, 从0开始。
System.out.println(s + " ordinal: " + s.ordinal());
//调用抽象类Enum的compareTo方法比较两个实例的声明次序是否相等
System.out.println(s.compareTo(Shrubbery.CRAWLING));
//调用抽象类Enum的compareTo方法比较是否同一个实例
System.out.println(s.equals(Shrubbery.CRAWLING));
//使用 == 比较是否同一个实例
System.out.println(s == Shrubbery.CRAWLING);
//返回声明该enum实例所属的enum类
System.out.println(s.getDeclaringClass());
//返回声明enum实例时的名字,与调用toString方法效果一样
System.out.println(s.name());
System.out.println("---------------------");
}
for(String s : "HANGING CRAWLING GROUND".split(" ")){
//valueOf是Enum的一个static方法,根据给定的名字返回相应的enum实例
Shrubbery shrub = Enum.valueOf(Shrubbery.class, s);
System.out.println(shrub);
}
}
}
// 代码参考与<<Think in Java 4ed>>
//当使用关键字enum定义一个Enum类型时,编译器会自动为你生成一个类。
//这个类继承自java.lang.Enum。 Enum是一个抽象类, 实现了Comparable接口,Serializable接口
//所以可以调用compareTo方法进行enum实例的比较。Enum也实现了equals方法,
//hashCode方法。 可以使用 == 来比较两个enum实例是否相等.
public enum Shrubbery{
GROUND, CRAWLING, HANGING
}
public class EnumClass {
public static void main(String[] args) {
for(Shrubbery s : Shrubbery.values()){
//ordinal()方法返回一个int值,这是每个enum实例在声明时的次序, 从0开始。
System.out.println(s + " ordinal: " + s.ordinal());
//调用抽象类Enum的compareTo方法比较两个实例的声明次序是否相等
System.out.println(s.compareTo(Shrubbery.CRAWLING));
//调用抽象类Enum的compareTo方法比较是否同一个实例
System.out.println(s.equals(Shrubbery.CRAWLING));
//使用 == 比较是否同一个实例
System.out.println(s == Shrubbery.CRAWLING);
//返回声明该enum实例所属的enum类
System.out.println(s.getDeclaringClass());
//返回声明enum实例时的名字,与调用toString方法效果一样
System.out.println(s.name());
System.out.println("---------------------");
}
for(String s : "HANGING CRAWLING GROUND".split(" ")){
//valueOf是Enum的一个static方法,根据给定的名字返回相应的enum实例
Shrubbery shrub = Enum.valueOf(Shrubbery.class, s);
System.out.println(shrub);
}
}
}
// 代码参考与<<Think in Java 4ed>>
2. 静态导入应用于enum
view plaincopy to clipboardprint?
public class StaticImport {
public static void main(String[] args) {
//没有使用static导入,引用enum实例
System.out.println(Shrubbery.GROUND);
System.out.println(Shrubbery.CRAWLING);
System.out.println(Shrubbery.HANGING);
//使用static导入,引用enum实例
System.out.println(GROUND);
System.out.println(CRAWLING);
System.out.println(HANGING);
}
}
public class StaticImport {
public static void main(String[] args) {
//没有使用static导入,引用enum实例
System.out.println(Shrubbery.GROUND);
System.out.println(Shrubbery.CRAWLING);
System.out.println(Shrubbery.HANGING);
//使用static导入,引用enum实例
System.out.println(GROUND);
System.out.println(CRAWLING);
System.out.println(HANGING);
}
}
enum是java语言关键字, 允许通过该关键字创建一个具有名的值的新类型,而这些具有名的值可以作为常规的程序组件使用。
enum基本的特性:
1. 调用enum的values方法返回一个enum实例的数组,可以循环使用values()返回的数组。
view plaincopy to clipboardprint?
//当使用关键字enum定义一个Enum类型时,编译器会自动为你生成一个类。
//这个类继承自java.lang.Enum。 Enum是一个抽象类, 实现了Comparable接口,Serializable接口
//所以可以调用compareTo方法进行enum实例的比较。Enum也实现了equals方法,
//hashCode方法。 可以使用 == 来比较两个enum实例是否相等.
public enum Shrubbery{
GROUND, CRAWLING, HANGING
}
public class EnumClass {
public static void main(String[] args) {
for(Shrubbery s : Shrubbery.values()){
//ordinal()方法返回一个int值,这是每个enum实例在声明时的次序, 从0开始。
System.out.println(s + " ordinal: " + s.ordinal());
//调用抽象类Enum的compareTo方法比较两个实例的声明次序是否相等
System.out.println(s.compareTo(Shrubbery.CRAWLING));
//调用抽象类Enum的compareTo方法比较是否同一个实例
System.out.println(s.equals(Shrubbery.CRAWLING));
//使用 == 比较是否同一个实例
System.out.println(s == Shrubbery.CRAWLING);
//返回声明该enum实例所属的enum类
System.out.println(s.getDeclaringClass());
//返回声明enum实例时的名字,与调用toString方法效果一样
System.out.println(s.name());
System.out.println("---------------------");
}
for(String s : "HANGING CRAWLING GROUND".split(" ")){
//valueOf是Enum的一个static方法,根据给定的名字返回相应的enum实例
Shrubbery shrub = Enum.valueOf(Shrubbery.class, s);
System.out.println(shrub);
}
}
}
// 代码参考与<<Think in Java 4ed>>
//当使用关键字enum定义一个Enum类型时,编译器会自动为你生成一个类。
//这个类继承自java.lang.Enum。 Enum是一个抽象类, 实现了Comparable接口,Serializable接口
//所以可以调用compareTo方法进行enum实例的比较。Enum也实现了equals方法,
//hashCode方法。 可以使用 == 来比较两个enum实例是否相等.
public enum Shrubbery{
GROUND, CRAWLING, HANGING
}
public class EnumClass {
public static void main(String[] args) {
for(Shrubbery s : Shrubbery.values()){
//ordinal()方法返回一个int值,这是每个enum实例在声明时的次序, 从0开始。
System.out.println(s + " ordinal: " + s.ordinal());
//调用抽象类Enum的compareTo方法比较两个实例的声明次序是否相等
System.out.println(s.compareTo(Shrubbery.CRAWLING));
//调用抽象类Enum的compareTo方法比较是否同一个实例
System.out.println(s.equals(Shrubbery.CRAWLING));
//使用 == 比较是否同一个实例
System.out.println(s == Shrubbery.CRAWLING);
//返回声明该enum实例所属的enum类
System.out.println(s.getDeclaringClass());
//返回声明enum实例时的名字,与调用toString方法效果一样
System.out.println(s.name());
System.out.println("---------------------");
}
for(String s : "HANGING CRAWLING GROUND".split(" ")){
//valueOf是Enum的一个static方法,根据给定的名字返回相应的enum实例
Shrubbery shrub = Enum.valueOf(Shrubbery.class, s);
System.out.println(shrub);
}
}
}
// 代码参考与<<Think in Java 4ed>>
2. 静态导入应用于enum
view plaincopy to clipboardprint?
public class StaticImport {
public static void main(String[] args) {
//没有使用static导入,引用enum实例
System.out.println(Shrubbery.GROUND);
System.out.println(Shrubbery.CRAWLING);
System.out.println(Shrubbery.HANGING);
//使用static导入,引用enum实例
System.out.println(GROUND);
System.out.println(CRAWLING);
System.out.println(HANGING);
}
}
public class StaticImport {
public static void main(String[] args) {
//没有使用static导入,引用enum实例
System.out.println(Shrubbery.GROUND);
System.out.println(Shrubbery.CRAWLING);
System.out.println(Shrubbery.HANGING);
//使用static导入,引用enum实例
System.out.println(GROUND);
System.out.println(CRAWLING);
System.out.println(HANGING);
}
}
相关文章推荐
- C语言中的enum(枚举)使用方法
- Enum枚举类型比值
- Java enum 枚举类型7种用法
- 黑马程序员--------------Enum 枚举
- 又爱又恨系列之枚举enum
- Java枚举enum以及应用:枚举实现单例模式
- 【C#枚举】根据EnumName获取Value
- C# Enum枚举转 Dictionary字典
- C# Enum枚举转 Dictionary字典
- java enum枚举的使用
- Java 枚举(enum)的用法
- [C语言 - 8] 枚举enum
- android ndk 05 C语言 _union_enum 联合体 枚举 IO文件操作(文件加密解密)
- 再谈java枚举 ENUM
- 正确的使用枚举(Enum)
- java enum(枚举)使用详解 + 总结
- [原创]C#应用WindowsApi实现查找\枚举(FindWindow、EnumChildWindows)窗体控件,并发送消息。
- java enum(枚举)使用详解 + 总结
- Java枚举enum的用法
- TYPEDEF NS_ENUM 等枚举介绍