理解:枚举类是否有点不太容易理解,跟普通的类不同一样,我觉的不同点就是枚举类中的枚举列表其实就是该类的实例对象。
如果能这样的理解是不是就感觉能理解通了。也就是说枚举类中已经有该类所有的实例对象了。
应用场景1
switch
package com.tzw.util;
public enum Color {
RED,
GREEN,
BLUE,
ORANGE;
}
package com.tzw.util;
public class A {
public void aa(Color color){
switch(color){
case RED:
System.out.println("红色");
break;
case BLUE:
System.out.println("蓝色");
break;
}
}
}
应用场景2
这种枚举类和上面的枚举类的不同,本质上就是构造方法的不同。
package com.tzw.util;
public enum Color {
RED("01","红色"),
GREEN("02","绿色"),
BLUE("03","蓝色"),
ORANGE("04","橘色");
private String key;
private String value;
private Color(String key,String value){
this.key = key;
this.value = value;
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
/**
* 自定方法,根据枚举值的key获取value值
* @param key
* @return
*/
public static String getValueByKey(String key){
Color[] values = values();
for (Color color:values) {
if(color.getKey().equals(key)){
return color.getValue();
}
}
return null;
}
}
package com.tzw.util;
import static com.tzw.util.Color.RED;
public class A {
public void aa(){
String valueByKey = Color.getValueByKey("01");
System.out.println(valueByKey);
}
public static void main(String[] args) {
A a = new A();
a.aa();
}
}