https://blog.csdn.net/weixin_30965253/article/details/114458945
1.枚举项就是枚举类的实例化对象。
A,B,C每一个都称为枚举项,它们都是本类的实例。
public enum TestEnum {
A,B,C
}
2.枚举不能使用 = 赋值,而是使用构造方法赋值。枚举可以有任意个属性,像这样:
枚举是单例模式。
public enum TestEnum {
A(1, "a", true),B(2, "b", false),C(3, "c", false);
private int intValue;
private String stringValue;
private boolean booleanValue;
private TestEnum(int intValue, String stringValue, boolean booleanValue) {
this.intValue = intValue;
this.stringValue = stringValue;
this.booleanValue = booleanValue;
}
}
3.Java枚举,一般用来限定可能的常量值。(因为对于普通常量可以赋的值比较多)
https://www.cnblogs.com/zhanqing/p/11076646.html
例如:
花园里的树的品种,限定几个范围值(柳树,杨树,泡桐树,桂花树)等等。
如果不限定的话,可能树种的类型没有,树的名字出错等。
public enum Flowers {
MONDAY("星期一"),
TUESDAY("星期二"),
WEDNESDAY("星期三"),
THURSDAY("星期四"),
FRIDAY("星期五"),
SATURDAY("星期六"),
SUNDAY("星期日");
private String desc;
/**
* 私有构造方法,防止被外部调用。
* @param desc
*/
private Flowers(String desc) {
this.desc = desc;
}
/**
* 定义方法,返回描述,跟常规的定义没有区别。
* @return
*/
public String getDesc() {
return desc;
}
public static void main(String[] args) {
for (Flowers flower:Flowers.values()) {
System.out.println("名称:"+flower.name()+" 描述:"+flower.getDesc());
}
}
}
输出结果为:
名称:MONDAY 描述:星期一
名称:TUESDAY 描述:星期二
名称:WEDNESDAY 描述:星期三
名称:THURSDAY 描述:星期四
名称:FRIDAY 描述:星期五
名称:SATURDAY 描述:星期六
名称:SUNDAY 描述:星期日
枚举说明:
enum Car{
//这个枚举长得就跟方法一样后面有括号,里面有参数。
//后面有构造方法跟枚举常量对应。
//以下是枚举项,枚举项就是枚举类的实例。
lamborghini(900),tata(2),audi(50),fiat(15),honda(12);
//这个是参数的属性。是属于类的,对象被创建时属于对象。
private int price;
//这个就像是构造函数,用来创建枚举对象。
//后面的形式参数跟上面的枚举常量后面的类型一样。
//格式也差不多。
private Car(int price) {
this.price = price;
}
}