枚举 & 注解

枚举 & 注解 & 反射

枚举

在这里插入图片描述

没有枚举之前,用级别类去实现一些功能

package xmll.DAY03;

/**
 * @Author:小鱼
 * 用于描述级别的枚举
 * JDK1.5之前枚举
 */
public class Level {
    
    
    //在类里定义自己的对象
    public static final Level LOW = new Level(1);
    public static final Level MEDIUM = new Level(2);
    public static final Level HIGH = new Level(3);
    private int LevelValue;

    /**
     * 为了不让别人对级别进行添加,对构造方法进行私有化
     */
    private Level(int levelValue) {
    
    
        LevelValue = levelValue;
    }
    public int getLevelValue() {
    
    
        return LevelValue;
    }

    public void setLevelValue(int levelValue) {
    
    
        LevelValue = levelValue;
    }
}

为了更好管理这些代码,产生了枚举

package xmll.DAY03;

/**
 * @Author:小鱼
 */
public enum Level1 {
    
    
    LOW(1),MEDIUM(2),HIGH(3);
    private int LevelValue;
    private Level1(int levelValue) {
    
    
        LevelValue = levelValue;
    }

    public int getLevelValue() {
    
    
        return LevelValue;
    }

    public void setLevelValue(int levelValue) {
    
    
        LevelValue = levelValue;
    }
}

还可以继续简化
在这里插入图片描述

package xmll.DAY03;

/**
 * @Author:小鱼
 */
public enum  Level2 {
    
    
    LOW,MEDIUM,HIGH;
}

在这里插入图片描述

package xmll.DAY03;

import static xmll.DAY03.Level2.*;

/**
 * @Author:
 */
public class Demo01 {
    
    
    public static void main(String[] args) {
    
    
        System.out.println(LOW.compareTo(HIGH));//-2
        System.out.println(HIGH.compareTo(LOW));//2

        System.out.println(LOW.name());//LOW

        System.out.println(LOW.ordinal());//0

        System.out.println(LOW.toString());//LOW

        Level2 x = Enum.valueOf(Level2.class, "LOW");
        System.out.println(x.name());//LOW
    }
}

1.4、实现接口的枚举类

所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承,所以枚举对象不能再继承其他类。 每个枚举对象,都可以实现自己的抽象方法。

package xmll.DAY03;

public enum Level2 implements LShow{
    
    
    LOW{
    
    
        @Override
        public void show() {
    
    
            System.out.println("低");
        }
    },MIN {
    
    
        @Override
        public void show() {
    
    
            System.out.println("中");
        }
    },HIGH {
    
    
        @Override
        public void show() {
    
    
            System.out.println("高");
        }
    };
}
interface  LShow{
    
    
    void show();
}
public class Demo04 {
    
    
    public static void main(String[] args) {
    
    
        Level2.HIGH.show();//高
    }
}

1.5、注意事项

在这里插入图片描述

2、注解

2.1、简介

Java 注解(Annotation)又称 Java 标注,是 JDK5.0 引入的一种注释机制。
Java 语言中的类、方法、变量、参数和包等都可以被标注。
和注释不同,Java 标注可以通过反射获取标注内容。
在编译器生成类文件时,标注可以被嵌入到字节码中。
Java 虚拟机可以保留标注内容,在运行时可以获取到标注内容 。
当然它也支持自定义 Java 标注。
在这里插入图片描述

2.3、内置注解

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_56187876/article/details/115183715
今日推荐