枚举
|
10.1 枚举概述
使用枚举,限制程序只采用其中某一个有效值。(只接受预设值:保证一个变量只赋一个有效值。)
枚举值是一个对象。
枚举类型可以是独立的,也可以是类的一部分。
public enum CustomerType{
INDIVIDUAL,
ORGANIZATION
}
|
使用枚举和使用类或者接口一样。
public class Customer{
public String customerName;
public CustomerType customerType;
public String address;
}
Customer customer = new Customer();
customer.customerType = CustomerType.INDIVIDUAL;
|
使用枚举中的值就像使用一个类的“静态成员”一样。
10.2 类中的枚举
10.3 java.lang.Enum类
当定义一个枚举时,编译器就会创建一个扩展java.lang.Enum类的类定义。
枚举的特性:
——没有公开的构造器,因此不可能把它实例化。
——隐式为static。
——每个枚举变量只有一个实例。
——可以调用枚举中的方法值,以便迭代它的枚举值。
10.4 迭代枚举值
for(CustomerType customerType : CustomerType.values()){
System.out.println(customerType);
}
|
10.5 枚举在switch中的应用
Customer customer = new Customer();
customer.customerType = CustomerType.INDIVIDUAL;
switch(customer.customerType){
case INDIVIDUAL:
System.out.println("individual");
break;
case ORGANIZATION:
System.out.println("organization");
break;
}
|
10.6 小结
Java支持枚举这个特殊的类。它是java.lang.Enum的一个子类。枚举优于static final,因为它更加安全。可以在switch语句的case中使用枚举,可以通过在增强的for循环中使用values方法来迭代或者遍历枚举值。