(示例实战)enum枚举类九大特性详解

枚举类:
1、Java枚举是一个特殊的类,一般表示一组常量,比如一年的四个季节,一年的12个月份,一星期的7天,方向有东西南北等;
2、Java枚举类用enum关键字来定义,各个常量使用逗号,来分割;
3、每个枚举都是通过Class在内部实现的,且所有的枚举值都是public static final的。比如:
enum Color{
RED,GREEN,BLUE
}
以上枚举转化为在类内部实现:
class Color{
public static final Color RED = new Color();
public static final Color GREEN = new Color();
public static final Color BLUE = new Color();
}
4、可以使用for语句来迭代枚举:
for(Color color : Color.values()){
System.out.println(color);
}
5、枚举类常应用于switch语句种:
Color color = Color.BLUE;
switch(color){
case RED:
System.out.println(“红色”);
break;
case GREEN:
System.out.println(“绿色”);
break;
case BLUE:
System.out.println(“蓝色”);
break;
}
}
6、values()返回枚举类种所有的值、ordinal()找到每个枚举的索引从0开始、valueOf()方法返回指定字符串值的枚举常量,不存在会报错 IllegalArgumentException;
7、枚举跟普通类一样可以有自己的变量、方法和构造函数,构造函数只能使用private修饰,所以外部无法调用;
8、枚举可以包含具体方法,也可也包含抽象方法(枚举类的每个实例都必须实现该抽象方法)。
9、枚举类不能被继承或实现,可以作为内部类。
示例代码如下:

enum EnumTest {
    
    
	INSTANCE {
    
    
		@Override
		void m2() {
    
    }
		@Override
		void m3() {
    
    }
	},
	INSTANCE2
	{
    
    
		@Override
		void m2() {
    
    }
		@Override
		void m3() {
    
    }
	};		
	private EnumTest() {
    
    
	}
	public void m1(){
    
    }
	abstract void m2();
	abstract void m3();
}

猜你喜欢

转载自blog.csdn.net/u010425839/article/details/115220462
今日推荐