Java面向对象编程篇5——枚举
1、枚举的概念
在日常生活中这些事物的取值只有明确的几个固定值,此时描述这些事 物的所有值都可以一一列举出来,而这个列举出来的类型就叫做枚举类型
2、枚举的定义
- 使用public static final表示的常量描述较为繁琐,使用enum关键字来定 义枚举类型取代常量,枚举类型是从Java5开始增加的一种引用数据类型
- 枚举值就是当前类的类型,也就是指向本类的对象,默认使用public static final关键字共同修饰,因此采用枚举类型.的方式调用
public enum Color {RED,BLUE,YELLOW
}
枚举类可以自定义构造方法,但是构造方法的修饰符必须是private,默认也是私有的
public enum Color {RED("红"),BLUE("蓝"),YELLOW("黄");private String introduce;public String getIntroduce() {return introduce;}private Color(String introduce){this.introduce = introduce;}
}
public class Test {public static void main(String[] args) {System.out.println(Color.RED.getIntroduce());}
}
带抽象方法的枚举类
public enum Color {RED("红"){@Overridepublic String getIntroduce() {return "红";}},BLUE("蓝"){@Overridepublic String getIntroduce() {return "蓝";}},YELLOW("黄"){@Overridepublic String getIntroduce() {return "黄";}};private String introduce;public abstract String getIntroduce();private Color(String introduce){this.introduce = introduce;}
}
public class Test {public static void main(String[] args) {System.out.println(Color.BLUE.getIntroduce());}
}
3、枚举的常用方法
public enum Color {RED,BLUE,YELLOW
}
public class Test {public static void main(String[] args) {//返回枚举常量的名称System.out.println(Color.RED.name());//返回枚举常量的序号(下标从0开始)System.out.println(Color.RED.ordinal());//遍历枚举Color[] colors=Color.values();for (Color color : colors) {System.out.println(color.name());}// 使用 valueOf() 返回枚举常量,不存在的会报错 java.lang.IllegalArgumentExceptionSystem.out.println(Color.valueOf("RED"));System.out.println(Color.valueOf("GRAY"));}
}