P425 枚举类引出
举了一个例子,季节类创建对象,但是根据Java的规则,可以设置春夏秋冬以外的对象,而且可以修改,这样就会不符合实际,因此引出枚举
P426 自定义枚举类
1.构造器私有化,使外面没有办法创建新对象
2.去掉set方法,防止属性被修改
3.在Season内部直接创建固定对象
4.优化,加上final,不会导致类加载,因为在使用对象静态成员的时候,会导致类加载,但是加上final,由于底层做了优化,因此不会导致类加载
P427 enum枚举类1
1.使用关键字替代class
2.pubilc staic final Season SPRING = new Season(“春天”,”温暖”)直接使用SPRING(“春天”,”温暖”)代替,常量名(实参列表)
3.如果有多个常量(对象),使用,间隔即可
4.使用enum来实现枚举,要求定义常量对象,写在行首
5.如果使用的是无参构造器,创建常量对象,则可以省略()
P428 enum枚举类2
javap反编译
P429 enum枚举类3
P430 enum成员方法
增强for循环,for(Season season:values){//可以理解为从values依次取值交给season,Season可以理解为和int一样的数据类型
}
P431 enum课堂练习
代码见enum01
P432 enum使用细节
使用enum关键字之后就不能继承其他类了,因为有一个隐式的继承,继承了Enum类,而Java式单继承机制
但是枚举类可以和普通类一样实现接口
P433 Override注解
写了@override,编译器会检查是否真的重写了父类的方法,如果确实重写了,则编译通过,如果没有,则编译错误(语法校验)
@interface不是一个接口,发现有这个,则说明声明了一个注解类
target规则了override只能用在方法上,taget式修饰注解的注解,也叫元注解
P434 Deprecated注解
不推荐使用,但是仍然可以使用
P435 SuppressWarnings注解
大括号里可以写的技术文档里给出了
感觉枚举有的地方讲的有点重复,注解那有点乱,不知道是不是自己的原因