Java枚举和Java内部类

Java枚举是一个特殊的类,一般表示一组常量。Java 枚举类使用 enum 关键字来定义,各个常量使用逗号 ,来分割。每个枚举都是通过Class在内部实现的,而且所有的枚举值都是public static final 的
可以使用 for 语句来迭代枚举元素
枚举类型相当于特殊的类,经过编译之后同样产生一个class文件。枚举类型中可以定义方法(包括构造 方法)、属性、静态的方法和属性、继承接口、重载覆盖等,类似于class。
枚举类型的定义:
在这里插入图片描述

enum 定义的枚举类默认继承了 java.lang.Enum 类,并实现了 java.lang.Seriablizable 和 java.lang.Comparable 两个接口,又因为Java是单继承的,所以一个枚举类型不 能继承任何其他的类。
values(), ordinal() 和 valueOf() 方法位于 java.lang.Enum 类中:
values() 返回枚举类中所有的值。
ordinal()方法可以找到每个枚举常量的索引,就像数组索引一样。
valueOf()方法返回指定字符串值的枚举常量。
枚举类成员:枚举跟普通类一样可以用自己的变量、方法和构造函数,构造函数只能使用 private 访问修饰符,所以外部无法调用。枚举既可以包含具体方法,也可以包含抽象方法。 如果枚举类具有抽象方法,则枚举类的每个实例都必须实现它
枚举类型的构造方法: 必须是private访问权限,不能使public权限。这样就可以保证在枚举类型定义的外部无法使用new 来创建枚举值。 使用构造方法(当然是带参数的构造方法)赋值,则必须给所有的枚举值赋值&

你可能感兴趣的:(java)