枚举指由一组固定的常量组成的类型(java.lang.Enum)
java se 5.0引入
类型安全
易于输入
代码清晰
在枚举中,如果除了定义枚举常量,还定义了其他成员,则枚举常量列表必须以分号(;)结尾
//性别枚举
public enum Genders{
Male,Female;
}
public class Student {
private Genders sex;
public Genders getSex() {
return sex;
}
public void setSex(Genders sex) {
this.sex = sex;
}
}
//主函数里写
Student student = new Student();
student.setSex(Genders.Male);
System.out.println(student.getSex());
public class WeekDemo {
public enum Week {
MON, TUE, WED, THR, FRI, SAT, SUN
}
public void doWhat(Week day) {
switch (day) {
case MON:
case TUE:
case WED:
case THR:
case FRI:
System.out.println("工作!");
break;
case SAT:
System.out.println("休息!");
break;
}
}
public static void main(String[] args) {
WeekDemo wd = new WeekDemo();
wd.doWhat(Week.MON);
}
}
public enum Test {
雪铁龙("10万","东风"),
别克("15万","上海通用"),
雪弗兰("11万","上海通用"),
CRV("13万","东本"),
QQ("2万","吉利");
private String price;
private String pinpai;
private Test() {
}
private Test(String price, String pinpai) {
this.price = price;
this.pinpai = pinpai;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getPinpai() {
return pinpai;
}
public void setPinpai(String pinpai) {
this.pinpai = pinpai;
}
//可以作为一种一对多 或一对一的映射转换
public static void main(String[] args) {
for(Test t:Test.values()){
System.out.println(t.pinpai+":"+t.price);
}
}
}
package com.betasoft.enums;
public enum Friut {
banana("香蕉"),apple("苹果"),tomato("番茄"),watermelon("西瓜"),strawberry("草莓");
private String value;
private Friut(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
package com.betasoft.test;
import java.util.ArrayList;
import java.util.EnumMap;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import com.betasoft.entity.Iphone;
import com.betasoft.enums.Friut;
public class TestFive {
public static void main(String[] args) {
for(Friut friut:Friut.values()){
System.out.println(friut.toString());
}
Friut friut = Friut.apple;
//getDeclaringClass()
System.out.println("getDeclaringClass(): " + friut.getDeclaringClass().getName());
//name() 和 toString()
System.out.println("name(): " + friut.name());
System.out.println("toString(): " + friut.toString());
//ordinal(), 返回值是从 0 开始
System.out.println("ordinal(): " + friut.ordinal());
System.out.println(friut.getValue());
EnumSet<Friut> friutSet = EnumSet.allOf(Friut.class);
for (Friut fri : friutSet) {
System.out.println(fri.getValue());
}
// EnumMap的使用
EnumMap<Friut, String> friutMap = new EnumMap(Friut.class);
friutMap.put(Friut.banana, "香蕉");
friutMap.put(Friut.apple, "苹果");
// ... ...
for (Iterator<Entry<Friut, String>> iter = friutMap.entrySet().iterator();iter.hasNext();) {
Entry<Friut, String> entry = iter.next();
System.out.println(entry.getKey().name() + ":" + entry.getValue()); }
}
}