个人感觉,枚举类和普通的java类区别不是很大,接下来简单的回忆一下枚举类
1.创建一个枚举类 Gender
public enum Gender { }
和普通的测试类 GenderTest
public class GenderTest { }
2.枚举类介绍
①在枚举类中添加两个变量
public enum Gender { male,female; }
在测试类中直接输出
@Test public void test(){ Gender male = Gender.male; System.out.println(male); }
最后输出
male
其实,枚举类中的male,female相当于自动给你new 了两个Gender实例。枚举类中的构造函数是私有的,即不能使用 Gender male = new Gender();
这样普通java类创建实例的方法。
②给枚举类加方法
在Gender枚举类中添加方法
public int getAge(){ return 1; }
在测试类中
@Test public void test2(){ Gender male = Gender.male; System.out.println(male.getAge()); }
输出 1
③用构造器给参数赋值
public enum Gender { //和new一样,要给构造器传值 male("male-text"),female("female-text"); //带参数构造器 覆盖默认构造器 private Gender(String text){ this.text=text; } private String text; public String getText() { return text; } public void setText(String text) { this.text = text; } }
测试
@Test public void test3(){ Gender male = Gender.male; System.out.println(male.getText()); }
输出 male-text
④添加抽象方法
public enum Gender { //和new一样,要给构造器传值 //必须要实现抽象方法 male("male-text"){ public int getAge(){ return 20; } },female("female-text"){ public int getAge(){ return 22; } }; //带参数构造器 覆盖默认构造器 private Gender(String text){ this.text=text; } private String text; public String getText() { return text; } public void setText(String text) { this.text = text; } //添加一个抽象方法 public abstract int getAge(); }
测试
@Test public void test4(){ Gender male = Gender.male; System.out.println(male.getAge()); }
输出 20
3.总结
从上面的测试可以看出,其实枚举类和普通类还是有很多共性的,或者说是特殊的普通类。
个人理解,肯定还有很多不足的地方。