Java枚举类
来源:互联网 发布:扩展欧几里得算法公式 编辑:程序博客网 时间:2024/04/28 19:19
1.枚举类可以实现一个或多个接口,用enum关键字定义枚举类,默认继承java.lang.Enum类,而不是继承Object类,其中java.lang.Enum类实现了java.lang.Serializable和java.lang.Comparable两个接口。
2.枚举类的构造器只能用private访问控制符,不管是省略还是默认或者强制指定访问控制符,都必须是private。
3.枚举类的所有实例必须在类里显示列出,否则因为枚举类的构造器为private访问控制,而导致枚举类无法创建实例。这些实例默认public static final修饰,不需要显示添加。
4.所有枚举类都提供了一个values的方法,该方法可以方便的遍历所有枚举值。
5.实现接口的枚举类:
public interface GenderDesc{ void info();}public enum Gender implements GenderDesc{ MALE("nan"){ public void info(){ System.out.printlin("this is male"); } }, FEMALE("nv"){ public void info(){ System.out.printlin("this is female"); } };}上面MALE、FEMALE枚举值不是Gender的实例,而是Gender的匿名子类的实例,编译源码会生成Gender.class、Gender$1.class、Gender$2.class三个class文件,说明MALE、FEMALE是Gender的匿名子类的实例。
6.包含抽象方法的枚举类:
public enum Operation{ PLUS{ public double eval(double x,double y){ return x+y; } }, MINUS{ public double eval(double x,double y){ return x-y; } }, TIMES{ public double eval(double x,double y){ return x*y; } }, DIVIDE{ public double eval(double x,double y){ return x/y; } }; public abstract double eval(doublex,double y);}编译上面源码生成5个class文件,其中包括Operation以及四个匿名内部子类的class文件
枚举类里定义抽象方法时,无需显示用abstract关键字将枚举类定义成抽象类,但定义每个枚举值时必须为所有抽象方法提供实现。
0 0
- java枚举类!
- java 枚举类
- java 枚举类
- 浅析java枚举类
- java 枚举类
- Java枚举类
- Java枚举类
- JAVA中的枚举类
- java枚举类
- JAVA笔记:枚举类
- JAVA枚举类
- java枚举类
- java枚举类介绍
- java枚举类
- Java枚举类详解
- 69 Java 枚举类
- 【java】枚举类
- Java枚举类
- Java 基础——类的加载
- leetcode 15. 3Sum
- n*log(3)n排序算法
- PAT-B 1053. 住房空置率
- 客户端网页编程1
- Java枚举类
- python运维之IPY模块
- Java 基础——数组解析
- 学习react-native之Navigator
- 客户端网页编程2
- eclipse使用debug模式启动不起来
- iOS开发 - UIActivityViewController详解
- class org.bouncycastle.asn1.ASN1Primitive overrides final method equals.(Ljava/lang/Object;)Z
- liunx 配置文件夹.d里自定义的配置文件?