[2025.1.3 JavaSE学习]枚举类 && 注解补充

枚举类

一、手动实现

class Enum{
    public static final MyClass ENUM1 = new MyClass(1);
	public static final MyClass ENUM2 = new MyClass(2);
	.....
}
  • 此处的final + static,前者防止该引用被重新赋值,后者确保该实例属于类

二、enum关键字

enum MyEnum{
    ENUM1(1,2),ENUM2(2,3),ENUM3(3,4), .... ,
	ENUM4, ENUM5, ...... ;
	......
	
    private int num1;
	private int num2;
	
	private MyEnum(int num1, int num2){
	    this.num1 = num1;
		this.num2 = num2;
	}
	
}
  • 这种实现方式,要将定义的常量对象写在最前面
  • enum继承基类Enum类
  • 代码中ENUM4、ENUM5是无参构造,可以不用写括号
  • 子类中不能重写toString方法,调用System.out.println(ENUM1),输出的就是ENUM1(使用父类的toString方法)
  • Java为单继承,使用enum后不可继承其他类

注解

注解类:查看源码是否是 public @interface XXX{} 的形式

  • @Deprecated 表示一个某个元素已经过时,不推荐使用,但是仍然可以使用(在IDEA中会出现中划线的情况),系统升级过渡使用
  • @SuppressWarnings({""}):在{""}中,可以选择自己想要抑制的warning信息

元注解:修饰注解的注解

  • Retention:指定注解的作用范围,有SOURCE、CLASS、RUNTIME
    • RetentionPolicy.SOURCE:编译器使用后,直接丢弃这种注解
    • RetentionPolicy.CLASS(默认值):把注解记录保存在class文件中,运行java程序时,JVM不会保留注释
    • RetentionPolicy.RUNTIME:把注解记录保存在class文件中,运行java程序时,JVM会保留注释,程序可以通过反射获取该注释
  • Target:指定注解可以在哪些地方使用
  • Documented:指定该注解是否会在javadoc中体现
  • Inherited:子类会继承父类注解
posted @ 2025-01-04 00:07  Luna-Evelyn  阅读(22)  评论(0)    收藏  举报