javase学习第二十天:枚举类和注解的使用

本文详细介绍了枚举类的两种定义方式及其特点,包括枚举类的单例模式和常用的枚举方法。同时,文章阐述了注解的基本概念,列举了如@Override、@Deprecated等常见注解的用途,并探讨了自定义注解的声明和使用。此外,还提到了JDK8的注解新特性,如可重复注解和类型注解。
摘要由CSDN通过智能技术生成

一.枚举类的使用

1.枚举类的的理解

①类的对象有限个,且确定多个

②需要定义一组常量时,使用枚举类

③枚举类如果只有一个对象,则是单例模式

2.定义枚举类方式1

①私有化类的构造器,并初始化对象的属性

private

②私有化属性

private final

③提供当前枚举类的多个对象

public static final

④可以提供对象属性的get()方法以及提供toString方法

⑤例子

class Weather{
    private Weather(String name){
        this.name = name;
    }
    private final String name;
    public static final Weather Spring = new Weather("春天");
    public static final Weather Summer = new Weather("夏天");

    @Override
    public String toString() {
        return this.name;
    }
}

3.定义枚举类方式2

①enum来定义枚举类

enum Weather

②先初始化对象

Spring,Summer;

③提供构造器,提供私有化对象属性,提供对象的属性get方法或者toString

④例子

enum Weather{
    Spring("春天"),Summer("夏天");
    private final String name;
    private Weather(String name){
        this.name = name;
    }
        @Override
    public String toString() {
        return this.name;
    }
}

⑤enum类中的常用方法

values(); Weather[] a = Weather.values()//返回枚举类中的所有对象的数组,可供数组索引使用
valueOf(Strign str);Weather Spring = Weather.valueOf(“Spring”)//利用字符串返回相应的对象
toString() ;//默认输出当前对象的名称

⑥枚举类enum实现接口

第一种:所有对象公用一个实现方法
在enum类中实现方法
第二种:每一个对象有自己独立的方法
例如:
Spring(“春天”){public void show{}},//在对象Spring中重写方法show,也可在Summer中重写show。
注意:swicth本身即可接受枚举类对象,即case Spring:

二.注解的使用

1.注解的理解

①整体框架:注解+反射+设计模式

②理解:代码中的特殊标记,可以被读取

2.注解例子(编译时来校验代码)

① @Override 校验重载方法

② @Deprecated 标注该方法是否过时

③ @SuppressWarnings 编译时抑制警告。

3.自定义注解

①声明

public @interface MyInnovateion{}

②定义value

String value();
String value() default “hello”;

③使用

@MyInnovation(“hi”)
@MyInnovation()

④通过反射来处理注解中的数据

4.JDK提供的四种元注解

①理解元注解

对现有的注解进行说明的注解

②Retention

指明注解的生命周期(编译丢弃注解,运行丢弃注解,最终保留注解)

③Target

指明注解能够修饰的元素(类,属性,方法…)

④Documented

修饰的注解在javadoc后会保留

⑤Inherited

所修饰的注解具有继承性,子类自动有该注解

⑥一般定义时通常用

Retention指明注解的声明周期,Target指明注解的使用范围

5.JDK8注解新特性

①可重复注解(原来需要去使用value数组,现在可重复注解)@Repeatable

在MyInnovation上声明@Repeatable(MyInnovatiins.class)//传入形参为声明为MyInnovations类(value数组)
注意MyInnovation和MyInnovations的taget,Retention,inherited都得相同

②类型注解(注解可能需要修饰不同的对象)

加入类型注解,表明该注释能使用在任何类型的语句中

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值