第08章 枚举类和注解
创作日期:2021-11-10
1.枚举类的使用
1.1 枚举类的概述
- 枚举类:类的对象只有有限个,确定的;当需要定义一组常量时,强烈建议使用枚举类;如果枚举类中只有一个对象,则可以作为单例模式的实现方式。
- 属性:枚举类对象的属性不应允许被改动,所以应该使用private final修饰;枚举类中使用private final修饰的属性应该在构造其中为其赋值;若枚举类显式的定义了带参数的构造器,则应该在列出枚举值时也必须对应的传入参数。
1.2 定义枚举类的两种方法
- 自定义枚举类
//枚举类的使用
public class Company {
public static void main(String[] args) {
Department ministry1 = Department.Ministry;
Department ministry2 = Department.Technology;
Department ministry3 = Department.Publicity;
Department ministry4 = Department.Logistics;
System.out.println(ministry1+"\n"+ministry2+"\n"+ministry3+"\n"+ministry4);
}
}
//自定义枚举类
class Department{
//1.声明对象Person的属性为private final修饰
private final String personName;
private final int personAge;
//2.私有化构造器,并对其赋值
private Department(String personName, int personAge) {
this.personName = personName;
this.personAge = personAge;
}
//3.提供当前枚举类的多个对象为 public static final修饰
public static final Department Ministry = new Department("人事部",25);
public static final Department Technology = new Department("技术部",35);
public static final Department Publicity = new Department("宣传部",30);
public static final Department Logistics = new Department("后勤部",40);
//4.其他诉求1:获取枚举类的属性
public String getPersonName() {
return personName;
}
public int getPersonAge() {
return personAge;
}
//5.其他诉求2:提供toString()
@Override
public String toString() {
return "Department{" +
"personName='" + personName + '\'' +
", personAge=" + personAge +
'}';
}
}
- 关键字enum定义枚举类
//枚举类的使用
public class Company {
public static void main(String[] args) {
Department ministry1 = Department.Ministry;
Department ministry2 = Department.Technology;
Department ministry3 = Department.Publicity;
Department ministry4 = Department.Logistics;
System.out.println(ministry1 + "\n" + ministry2 + "\n" + ministry3 + "\n" + ministry4);
}
}
//关键字