枚举和注解
- 枚举的两种实现方式
- 注解
- 基本注解介绍
- 三个基本的注解
- 元注解的基本介绍
- 元注解的种类
枚举是一组常量的集合
枚举是一组特殊的类,里面只包含一组有限的特定的对象。
枚举的两种实现方式
1.自定义类实现枚举
1)不需要提供setXxx方法,因为枚举对象值通常只读
2).对枚举对象/属性使用 final+static 共同修饰,实现底层优化
3).枚举对象名通常使用全部大写,常量的命名规范。
4).枚举对象根据需要,也可以多个属性
public class Enumeratea {
public static void main(String[] args) {
System.out.println(Season.spring);
System.out.println(Season.summer);
System.out.println(Season.autumn);
System.out.println(Season.winter);
}
}
class Season{
private String name;
private String desc;//特点
//final和static一起使用,会在不加载类的情况访问属性
public static final Season spring = new Season("春天","温暖");
public static final Season summer = new Season("夏天","炎热");
public static final Season autumn = new Season("秋天","凉爽");
public static final Season winter = new Season("冬天","寒冷");
public Season(String name, String desc) {
this.name = name;
this.desc = desc;
}
@Override
public String toString() {
return "Season" +"{"+
"name='" + name + '\'' +
", desc='" + desc + '\'' +
'}';
}
}
2.使用enum关键字实现枚举
public class Enumeratea02 {
public static void main(String[] args) {
System.out.println(Season.spring);
System.out.println(Season.summer);
System.out.println(Season.autumn);
System.out.println(Season.winter);
}
}
enum Season02{
//final和static一起使用,会在不加载类的情况访问属性
spring("春天","温暖"),
summer("夏天","炎热"),
autumn ("秋天","凉爽"),
winter("冬天","寒冷");
private String name;
private String desc;//特点
private Season02(String name, String desc) {
this.name = name;
this.desc = desc;
}
@Override
public String toString() {
return "Season" +"{"+
"name='" + name + '\'' +
", desc='" + desc + '\'' +
'}';
}
}
1).当我们使用enum关键字开发一个枚举类时,默认会继承Enum类
2)传统的public static final Season spring = new Season(“春天”,“温暖”);
简化成spring(“春天”,“温暖”);
3).如果使用无参构造器创建枚举对象则实参列表和小括号都可以省略
4).当有多个枚举对象时,使用间隔,符号,最后有一个分号结尾
5).枚举对象必须放在枚举类的行首
使用enum关键字的细节
1、使用关键字后,就不能在继承其他类,因为enum会隐式继承Enum
,Java是单继承机制
2.枚举类和普通类一样,可以实现接口
enum 类名 implements 接口1 接口2{}
注解
基本注解介绍
注解被称作元数据,用于修饰解释包、类、方法、属性、构造器、局部变量等数据信息。
它和注释一样,注解不影响程序逻辑,但注解可以被编译或运行,相当于嵌入在代码中的
补充信息。
使用注解时要在前面加@符号,把注解当成一个修饰符,用于修饰它支持的元素
三个基本的注解
1.@Override:限定某个方法,是重写父类方法,此注解只用于方法
2.@Deprecated:用于表示某个程序元素(类,方法等)(了解一下)
3.@SuppresWarnings:抑制编辑器警告
元注解的基本介绍
jdk的元注解用于修饰其他注解
元注解的种类
1.Retention :指定注解的作用范围,三种source,class,runtime
2.Target 指定注解可以在哪些地方使用
3.Documented 指定该注解是否会在javadoc体现
4.inherited :子类会继承父类注解