Java之枚举类与注解

枚举类的创建

使用class的形式
使用 final 定义 常量属性, 通过构造器为常量赋值, 通过重写toString输出描述信息。

package jzq.com.Enum01;

public class Enum01 {
    public static void main(String[] args) {
        Season spring = Season.SPRING;
        System.out.println(spring);
        System.out.println(spring.getSeasonName());
    }
}


// 枚举类
class  Season {

    private final String seasonName;
    private final String seasonDesc;

    // 1. 私有化构造器
    private Season(String seasonName, String seasonDesc) {
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;
    }

    // 当前枚举类的对象

    public static final Season SPRING = new Season("春天", "春暖花开");
    public static final Season SUMMER = new Season("夏天", "热地慌");

    public String getSeasonName() {
        return seasonName;
    }

    public String getSeasonDesc() {
        return seasonDesc;
    }

    @Override
    public String toString() {
        return "{" + this.seasonName + ":" + this.seasonDesc + "}";
    }
}

使用 enum 关键字 定义枚举类
不用 通过 public static final Season SPRING = new Season(“春天”, “春暖花开”); 手撸枚举对象了。
通过 SPRING(“春天”, “春暖花开”), SUMMER(“夏天”, “热地慌”); 产生枚举对象
不使用class声明类,使用 enum

package jzq.com.Enum02;

public class Enum02 {
    public static void main(String[] args) {
        Season spring = Season.SPRING;
        System.out.println(spring);
        System.out.println(spring.getSeasonName());

        Season summer = Season.SUMMER;
        System.out.println(summer);
    }
}


// 枚举类
enum Season {

    // 当前枚举类的对象 (这里注意使用,隔开对象)

    SPRING("春天", "春暖花开"),
    SUMMER("夏天", "热地慌");

    private final String seasonName;
    private final String seasonDesc;

    // 1. 私有化构造器
    private Season(String seasonName, String seasonDesc) {
        this.seasonName = seasonName;
        this.seasonDesc = seasonDesc;
    }


    public String getSeasonName() {
        return seasonName;
    }

    public String getSeasonDesc() {
        return seasonDesc;
    }

    @Override
    public String toString() {
        return "{" + this.seasonName + ":" + this.seasonDesc + "}";
    }
}

通过枚举类.values() 遍历所有枚举

        Season[] values = Season.values();

Annotation注解(部分截图来源尚硅谷视频)

文档类注解

在这里插入图片描述

编译格式检查注解

在这里插入图片描述

自定义注解

在这里插入图片描述

代码如下

package jzq.com.Enum03;

public @interface MyAnnotation{
    String value();
}

四个元注解

@Retention : 指定 Annotation的生命周期

在这里插入图片描述

@Target : 指的是Annotation 可以修饰哪些元素

在这里插入图片描述

@Documented : 指定明Annotation 修饰的Annotation类将被javadoc工具提取成文档

在这里插入图片描述

@Inherited :指明被修饰的Annotation 将具有继承性
在这里插入图片描述

jdk8 新特性

可重复注解

在这里插入图片描述

类型注解
在自定义注解中的 @Target中 加上 TYPE_USE

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值