枚举类
概念:
- 用以存储一组有关联且有意义的常量的特殊数据类型
- 枚举类也是类,具有自己的成员变量和方法、构造器y
异同:
- 使用的是enum关键字而不是class
- 多个枚举变量直接用逗号隔开
- 枚举变量大写,多个单词之家使用“_"隔开(如
DATE_TIME
) - 枚举的变量必须在第一行列出,定义完所有变量后,分号结束。枚举变量自动添加
public static final
修饰 - 构造器只能使用
private
修饰 - 在其他类中使用枚举类的变量时,只需要【类名.变量名】
- 如果实例化输入的参数不完全一致,则会抛出
IllegalArgumentException
异常
案例:
- 设计一个可以获取发票代码所在省份的代码
- 用CityEnum存储对应的常量
package model;
//需求:根据发票代码查找发票所在省份
public enum CityEnum {
BJS("北京市", "11"), SHHS("上海市", "31"), TJS("天津市", "12"),
CHQS("重庆市", "50"), XGTBXZQ("香港特别行政区", "xg"), AMTBXZQ("澳门特别行政区", "am"),
HEBS("河北省", "13"), ZJS("浙江省", "33"), LNS("辽宁省", "21"),
HUBS("湖北省", "42"), JSS("江苏省", "32"), NMGZZQ("内蒙古自治区", "15"),
JXS("江西省", "36"), SXS("山西省", "14"), GSS("甘肃省", "62"), SDS("山东省", "37"),
HLJS("黑龙江省", "23"), FJS("福建省", "35"), GDS("广东省", "44"), SCS("四川省", "52"),
HUNS("湖南省", "43"), HENS("河南省", "41"), YNS("云南省", "53"), AHS("安徽省", "34"),
NXZZQ("宁夏回族自治区", "64"), JLS("吉林省", "22"), GXZZQ("广西壮族自治区", "45"), GZS("贵州省", "52"),
SHXS("陕西省", "61"), QHS("青海省", "63"), HINS("海南省","46"),
XZ("西藏自治区", "54"), XJZZQ("新疆维吾尔自治区", "65");
private String city;
private String index;
CityEnum(String city, String index) {
this.city = city;
this.index = index;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getIndex() {
return index;
}
public void setIndex(String index) {
this.index = index;
}
}
package model;
public class MainTest {
public static void main(String[] args) {
System.out.println(getCity("61"));
}
public static String getCity(String index){
for (CityEnum city : CityEnum.values()){
if(city.getIndex().equals(index)){
return city.getCity();
}
}return null;
}
}
输出结果:
陕西省