Java学习笔记---枚举
2017-06-05 00:53
337 查看
Java学习笔记—枚举
什么是枚举?枚举就是在一定的范围内取值,取得的值是范围内的一个
如下就不是枚举:(交通灯的三色)
public class TestEnum { //传统方式 private int color; public void test(){ //这里不会报错,但是10000不属于规定的范围 this.color = 10000; //Color1.RED; } } class Color1{ public static final int RED = 1;//红灯亮为1 public static final int GREEN = 2;//绿灯亮为2 public static final int YELLOW = 3;//黄灯亮为3 }
第二种方式
public class TestEnum { //第二种方式 private Color2 color; public void test(){ this.color = Color2.RED; //避免 new Color2(); } } class Color2{ //构造方法私有化 private Color2(){} public static final Color2 RED = new Color2();//红灯亮为1 public static final Color2 GREEN = new Color2();//绿灯亮为2 public static final Color2 YELLOW = new Color2();//黄灯亮为3 }
枚举方式,使用一个关键字:enum(枚举的构造方法也是私有的)
public class TestEnum { //枚举方式 private Color3 color; public void test(){ this.color = Color3.RED; } } //使用枚举实现(即第二种方式的简写方式:运用了一个关键词enum) enum Color3 { RED,GREEN,YELLOW; //即Color3的3个实例; }
特殊的枚举操作
在枚举类里面有构造方法
构造方法里面有参数,需要在每个实例上面都写参数
在枚举类里面有抽象方法
在枚举的每个实例里面都重写这个抽象方法
enum color11{ RED("red"){ @Override public void print1(){ System.out.println("red"); } }, GREEN("green"){ @Override public void print1(){ System.out.println("red"); } }, YELLOW("yellow"){ @Override public void print1(){ System.out.println("red"); } }; private color11 (String name) {} //抽象方法 //当在枚举里面写了抽象方法之后,需要在每个实例上都实现抽象方法 public abstract void print1(); }
枚举的API的使用(常用方法 )
name ():返回枚举的名称
ordinal ():返回枚举的下标,下标从0开始
valueOf ( Class<t> enumType , String name):得到枚举的对象
在编译时生成的两个方法:
valueof (String name):转换枚举对象
values ():获取所有枚举对象数组
如下是以上方法的应用:
import org.junit.Ignore; import org.junit.Test; public class TestEnum2 { //知道枚举的下标,得到枚举的对象和名称 @Test public void test3(){ int idx2 = 2; //得到对象 Color100[] cs = Color100.values(); //根据下标得到对象 Color100 c12 = cs[idx2]; //得到枚举名称 String name = c12.name(); System.out.println(name); } //知道枚举的名称,得到枚举的对象和下标 @Ignore public void test2(){ String name = "GREEN"; //得到对象 Color100 c1 = Color100.valueOf(name); //得到下标 int idx1 = c1.ordinal(); System.out.println(idx1); } //知道枚举的对象,得到枚举的名称和下标 @Ignore public void test1(){ //得到枚举对象 Color100 c100 = Color100.RED; //枚举的名称 String name = c100.name(); //枚举的下标 int idx = c100.ordinal(); System.out.println(name+" "+idx); } } enum Color100{ RED,GREEN,YELLOW; }
相关文章推荐
- 《编写高质量代码改善Java程序的151个建议》学习笔记 第6章 枚举和注解
- Java编程思想学习笔记——枚举、注解
- 黑马程序员-java学习笔记-枚举
- 黑马程序员_java jdk5.0新特性和枚举的学习笔记
- 为什么要用枚举实现Singleton--java学习笔记
- 学习笔记之Java中枚举的使用
- 14. JAVA 枚举(Enum、类集EnumMap&EnumSet 、实现接口、定义抽象方法) ----- 学习笔记
- Java学习笔记(二):枚举和多线程
- java学习笔记10--枚举
- java学习笔记之枚举类enum(转载)
- java学习笔记10--枚举
- java交通管理系统枚举学习笔记及心得
- 黑马程序员--Java基础加强学习笔记之重载和覆写、可变参数、枚举
- java学习笔记10--枚举
- J2SE学习笔记3 — Java基本语法(9)数组和枚举
- java学习笔记10--枚举
- 黑马程序员—Java基础加强学习笔记之枚举&反射
- Java枚举学习笔记(一)
- java学习笔记_高级篇必会(可变参数,枚举)
- java学习笔记----枚举测试题