java枚举学习

java枚举
理解的不多,看懂的也没多少,觉得有用的就这几项吧!
在switch中使用
在enum类添加方法与构造函数
枚举单例

在switch中使用
https://blog.csdn.net/qq_27093465/article/details/52180865 这个写的挺好的
就是枚举项特别多的时候,还是用int吧!

public enum IntEnum {
	zero,
	one,
	two,
	three;
}

常用点可能在这

枚举序列号从 0 开始的

@Test
	public void Test4() {
		IntEnum enum1 = IntEnum.values()[3];  //int转枚举
		System.out.println(enum1);
		System.out.println(IntEnum.one.ordinal());  枚举转int
	}
测试结果:
three
1

int转枚举时注意: IntEnum enum1 = IntEnum.values()[5]; 会报数组越界的异常

在enum类添加方法与构造函数

public enum intEnum {
	one(1),
	two(2),
	three(3);
	private  int num;
	public int getNum() {
		return num;
	}
	public void setNum(int num) {  //最好不要有  可以充当常量使用
		this.num = num;
	}
	private intEnum(int i)
	{
		num = i;
	}
}

使用

@Test
	public void Test4() {
		System.out.println(intEnum.one);
		System.out.println(intEnum.one.getNum());
		intEnum.one.setNum(5);
		System.out.println(intEnum.one);
		System.out.println(intEnum.one.getNum());
	}
	
	结果:
		one
		1
		one
		5

枚举单例
参考
https://www.cnblogs.com/cielosun/p/6596475.html
好处:1.线程安全 2,自由序列化3.保证单例,
线程安全方面: 类似饿汉式,所以线程安全
单例模式:是因为 enum有且仅有private的构造器

我不想写了 , 没怎么看懂,而且和在enum类添加方法与构造函数有些部分是重复的;

猜你喜欢

转载自blog.csdn.net/xy3233/article/details/86661628