一.枚举的理解
1.限制类的对象,如个数,值不能更改,等。
二.class模拟枚举类
class ClassEnumPerson.java
package com.tiglle.enum1;
public class ClassEnumPerson {
//私有属性
private String name;
private String sex;
//私有化构造方法,让类不能产生新对象
private ClassEnumPerson(String name,String sex){
this.name = name;
this.sex = sex;
}
//只设置取值方法,让属性值不能被改变
public String getName() {
return name;
}
public String getDesc() {
return sex;
}
//提供类的对象
public static final ClassEnumPerson XIAOMING = new ClassEnumPerson("小明","男");
public static final ClassEnumPerson XIAOHONG = new ClassEnumPerson("小红","女");
public static final ClassEnumPerson XIAOHUA = new ClassEnumPerson("小花","女");
public static final ClassEnumPerson XIAOGANG = new ClassEnumPerson("小刚","男");
}
三.枚举的定义
enum EnumPerson.java
package com.tiglle.enum1;
public enum EnumPerson {
//枚举类的所有实例都必须在第一行声明
//等于public static final ClassEnumPerson XIAOMING = new ClassEnumPerson("小明","男");
XIAOMING("小明","男"),//隐示调用了下面的构造方法
//等于public static final ClassEnumPerson XIAOHONG = new ClassEnumPerson("小红","女");
XIAOHONG("小红","女"),//隐示调用了下面的构造方法
//等于public static final ClassEnumPerson XIAOHUA = new ClassEnumPerson("小花","女");
XIAOHUA("小花","女"),//隐示调用了下面的构造方法
//等于public static final ClassEnumPerson XIAOGANG = new ClassEnumPerson("小刚","男");
XIAOGANG("小刚","男");//隐示调用了下面的构造方法
private String name;
private String sex;
//枚举构造方法必须私有化
private EnumPerson(String name,String sex){
this.name = name;
this.sex = sex;
}
//只有取值方法
public String getName() {
return name;
}
public String getSex() {
return sex;
}
}
四.枚举类的使用
main方法
1.普通使用
//获取对象
EnumPerson e = EnumPerson.XIAOMING;
System.out.println(e.getName());
//直接获取值
String name = EnumPerson.XIAOGANG.getName();
System.out.println(name);
2.switch中使用
switch(e){
case XIAOMING:
System.out.println(e.getName());
break;
case XIAOHONG:
System.out.println(e.getName());
break;
case XIAOHUA:
System.out.println(e.getName());
break;
case XIAOGANG:
System.out.println(e.getName());
break;
default:
System.out.println(e.getName());
break;
}