枚举类enum
示例代码
enum Color{
RED,BLUE,YELLOW;
}
enum 和 class、interface 的地位一样
枚举(enum)类型是 Java 5 新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全(类型安全的代码不会试图访问自己没被授权的内存区域)的形式来表示。
使用 enum 定义的枚举类默认继承了 java.lang.Enum,而不是继承 Object 类。枚举类可以实现一个或多个接口。
枚举类的所有实例都必须放在第一行展示,不需使用 new 关键字,不需显式调用构造器。自动添加 public static final 修饰。
使用 enum 定义、非抽象的枚举类默认使用 final 修饰,不可以被继承。
枚举类的构造器只能是私有的。
示例代码
enum Color{
RED,BLUE,YELLOW;
Color(){
System.out.println("this is enum constructor");
}
}
class testClass{
public testClass(){
System.out.println("this is common class");
}
}
public class testEnum {
public static void main(String args[]){
System.out.println(Color.RED);
}
}
执行结果:
this is enum constructor
this is enum constructor
this is enum constructor
RED
示例代码
package enumcase;
public enum SeasonEnum {
SPRING("春天"),SUMMER("夏天"),FALL("秋天"),WINTER("冬天");
private final String name;
private SeasonEnum(String name)
{
this.name = name;
}
public String getName() {
return name;
}
}
实际上在第一行写枚举类实例的时候,默认是调用了构造器的,所以此处需要传入参数,因为没有显式申明无参构造器,只能调用有参数的构造器。
构造器需定义成私有的,这样就不能在别处申明此类的对象了。枚举类通常应该设计成不可变类,它的 Field 不应该被改变,这样会更安全,而且代码更加简洁。所以我们将 Field 用 private final 修饰。