枚举
package objectExtendsWrapper;
public class TestEnum {
/**
* 一、枚举
* 1.枚举类的对象的属性允许被改动,使用private final修饰
* 1.1枚举类的使用private final 修饰的属性应该在构造器中为其赋值
* 1.2若定义了到参数的构造器,在列出枚举值时必须对应的传入参数
*
* 2.必须在枚举类的第一行声明枚举对象
* 2.1枚举类的构造器只能使用private 访问控制符
* 2.2枚举类的实例必须在枚举类中显示列出(,分隔;结尾)
*2.3swich 表达式中使用Enum定义的枚举类对象作为表达式,case句子
* 可以直接使用枚举值得名字,无需添加枚举类作为限定
* 3.枚举类可以实现一个或多个接口
*
* 注解:Annotation
*1.annotation其实是代码里的特殊标记, 可以像修饰符一样被使用,可用于修饰包,类、构造器、方法、成员变量、参数、局部变量
* 2.在使用annotation时要在前面增加@符号
* 3.三个基本的 Annotation:
* @Override: 限定重写父类方法, 该注释只能用于方法
* @Deprecated: 用于表示某个程序元素(类, 方法等)已过时
* @SuppressWarnings: 抑制编译器警告
* 4.annotation类型使用@interface关键字
* 5.可以在定义 Annotation 的成员变量时为其指定初始值, 指定成员变量的初始值可使用 default 关键字
* public @interface MyAnnotation{
* String name() default “atguigu";
}
*/
public static void main(String[] args) {
/**
*1.枚举的主要方法
*1.1 values方法:返回枚举类型的对象数组
*/
//values方法
SeasonEnum[] myenum = SeasonEnum.values();
for (int i = 0; i < myenum.length; i++) {
System.out.println(myenum[i]);
}
/* *
*1.2 valueOf(String str)可以把一个字符串转为对应的枚举类的对象
*/
for (SeasonEnum se : SeasonEnum.values()) {
System.out.println(se.getSeasonName()+ ",\t"+se.getSeasonDes());
}
}
}
enum SeasonEnum{
SPRING("春天","春风又绿江南岸"),
SUMMER("夏天","映日荷花别样红"),
AUTUMN("秋天","秋水共长天一色"),
WINTER("冬天","寒窗西岭千秋雪");
private final String seasonName;
private final String seasonDes;
private SeasonEnum(String seasonName,String seasonDese) {
this.seasonName = seasonName;
this.seasonDes = seasonDese;
}
public String getSeasonName() {
return seasonName;
}
public String getSeasonDes() {
return seasonDes;
}
}