传统的写一个季节类,然后有一个季节名字和描述,并为属性设置get set方法。
在主方法中我们可以随意设置季节名字,但是我们知道这是不合适的,因为我们知道只有4个季节
所以我们可以设置为一个枚举类(只读不改)
枚举
是一组常量的集合,是一种特殊类,只包含一组有限的特定对象。
枚举的2种实现方式
(1)自定义类实现
1.将构造器私有化,防止实例化对象
2.去除set方法,保留get方法,防止属性被修改
3.在该类直接创建固定的公有且静态的该类对象,有几个枚举就创建几个对象(即使构造器私有,在该类内部可以访问)
4.重写toString方法,然后打印对象即可输出内容
5.优化:使用静态属性会导致类的加载,所以可以加入final修饰符,优化代码,不会导致类的加载
public static Season SPRING=new Season("春天","温暖"); ... ... public static Season WINTER=new Season("冬天","寒冷");
(2)enum关键字
1.用enum代替class
2.常量名(实参列表)
3.多个常量用逗号间隔,最后一个带分号
4.定义的枚举常量必须写在类内部的最前面
5.构造器必须为私有
6.用enum关键词后,就不可以继承其他类了,因为会隐式继承Enum类,单继承机制可以实现接口
7.里面的常量都是public static final