1.枚举
public class TestSeason {
public static void main(String[] args) {
Season spring = Season.SPRING;
System.out.println(spring);
spring.show();
System.out.println(spring.getSeasonName());
}
}
//枚举类
class Season{
//1.提供类的属性,声明为private final
private final String seasonName;
private final String seasonDesc;
//2.声明为final的属性,在构造器中初始化。
private Season(String seasonName,String seasonDesc){
this.seasonName = seasonName;
this.seasonDesc = seasonDesc;
}
//3.通过公共的方法来调用属性
public String getSeasonName() {
return seasonName;
}
public String getSeasonDesc() {
return seasonDesc;
}
//4.创建枚举类的对象:将类的对象声明public static final
public static final Season SPRING = new Season("spring", "春暖花开");
public static final Season SUMMER = new Season("summer", "夏日炎炎");
public static final Season AUTUMN = new Season("autumn", "秋高气爽");
public static final Season WINTER = new Season("winter", "白雪皑皑");
@Override
public String toString() {
return "Season [seasonName=" + seasonName + ", seasonDesc="
+ seasonDesc + "]";
}
public void show(){
System.out.println("这是一个季节");
}
}
2.注解
1). JDK 内置的基本注解类型(3个)
①. @override:限定重写父类方法,该注释只能用于方法
②. @Deprecated:用于表示某个程序元素(类, 方法等)已过时
public class Test {
public static void main(String[] args) {
tests();
}
@Deprecated
public static void tests(){
}
}
③. @SuppressWarnings:抑制编译器警告
@SuppressWarnings({ "unused", "rawtypes" })
List list=new ArrayList();
2). 自定义注解类型
public @interface T {
}
3). 对注解进行注解(4个)
①. Retention:只能用于修饰一个 Annotation 定义,指定 Annotation 可以保留多长时间
②. Target:用于修饰 Annotation 定义,指定被修饰的 Annotation 能用于哪些程序元素
③. Documented:用于指定被该 元 Annotation 修饰的 Annotation 类将被 javadoc 工具提取成文档
④. Inherited:被它修饰的 Annotation 将具有继承性
4). 利用反射获取注解信息(在反射部分涉及)