Java记录 -79- 枚举(Enums)
来源:互联网 发布:最新office办公软件 编辑:程序博客网 时间:2024/06/06 06:46
枚举(Enums)
JDK1.5加入了一个全新的类型的“类”--枚举类型。为此JDK1.5引入了一个新关键字enum。我们可以这样来定义一个枚举类型
Public enum Color{
Red,
White,
Blue
}
然后可以这样来使用 Color myColor = Color.Red;
枚举类型还提供了两个很有用的静态方法 values()和valueOf()。我们可以很方便的使用它们,例如:
for(Color c : Color.values())
System.out.println(c);
定义枚举类型时本质上就是定义一个类别,只不过很多细节由编译器帮您完成了,所以某种程度上,enum关键字的作用就像是class或interface。
当您使用“enum”定义枚举类型时,实质上您定义出来的类型继承自java.lang.Enum类型,而每个枚举的成员其实就是您定义的枚举类型的一个实例(Instance),它们都被预设为final,所以您无法改变它们,它们也是static成员,所以您可以通过类型名称直接使用它们,当然最重要的它们都是公开的public。换句话说,当定义一个枚举类型后,在编译时刻就能确定该枚举类型有几个实例,分别是什么。在运行期间我们无法再使用该枚举类型创建新的实例了,这些实例在编译期间就已经完全确定下来了。
枚举简单的定义与使用:
//枚举的定义public enum Color { Red, White, Blue}//枚举的使用public class ColorTest { public static void main(String[] args){ Color myColor = Color.Red; System.out.println(myColor); for(Color c : Color.values()){ System.out.println(c); } }}
枚举通用场景:
public class EnumTest { public static void doOp(OpConstant op){ switch(op){ case TURN_LEFT: System.out.println("向左转"); break; case TURN_RIGHT: System.out.println("向右转"); break; case SHOOT: System.out.println("射击"); break; } } public static void main(String[] args){ doOp(OpConstant.SHOOT); }}enum OpConstant{ TURN_LEFT, TURN_RIGHT, SHOOT}
阅读全文
0 0
- Java记录 -79- 枚举(Enums)
- Java记录 -80- 深入理解枚举(Enums)
- C#枚举(Enums)
- C#枚举(Enums)
- enums枚举
- Java 的枚举(Enums) 可以实现接口(Interfaces)
- Java 的枚举(Enums) 可以实现接口(Interfaces)
- C++11新特性(三)Strongly-typed enums 强类型枚举简单使用
- 在代码中使用枚举Enums
- Enums Distilled from Effective Java
- {Effective Java} Chap 6 Enums and Annotations
- swift学习记录(枚举)
- 译 Programming with typesafe enums and annotations in Java 5
- Swift中元组(Tuples),结构体(Struct),枚举(Enums)之间的区别
- Swift中元组(Tuples),结构体(Struct),枚举(Enums)之间的区别
- Swift中元组(Tuples),结构体(Struct),枚举(Enums)之间的区别
- Java枚举(二)
- Java(枚举)
- Linux重定向命令
- Java记录 -75- 泛型高级晋级
- Java记录 -76- Integer cache缓存
- Java记录 -77- 增强的for循环与自动拆装箱
- Java记录 -78- 可变参数
- Java记录 -79- 枚举(Enums)
- 学习c++(c+primer第五版第六章)
- Java记录 -80- 深入理解枚举(Enums)
- Java记录 -81- EnumSet和EnumMap
- shell统计日志信息
- linux shell变量获取执行结果
- linux date命令
- Canvas关于Path的解析
- Java记录 -82- 静态导入 Static Import