枚举与注解

枚举

用途:用于定义有限数量的同类常量

JDK1.5之前没有枚举,是如何管理同类常量的呢?

  • 假设用一个类来管理同一种类型的常量时,可以将类的构造方法私有化;
  • 同时暴露出静态的属性,每个静态属性对应一个常量

 JDK1.5后引入枚举

 更常用的方式是不进行任何赋值

 

 枚举常用方法

 

 

枚举接口

枚举实现接口的话,每个枚举量都可以单独实现接口

 

枚举注意事项

- 一旦定义好枚举,最好不要修改值

- 枚举类默认继承的是java.lang.Enum,而不是Object

- 枚举类默认为被final修饰,所以不会有子类

- 枚举类构造方法必须是私有的,

- switch使用枚举类时,直接使用常量名称,不是类名.常量名称

- 不能定义name属性

- 设置新属性时,不要提供set方法 

注解

注释:给人看。源文件转成.class文件时,注释不存在其中

注解:给机器看。

JAVA里的类、方法、变量、参数和包等都可以加注解。和注释不同,JAVA注解可以通过反射获取注解的内容。在编译器生成类文件时,注解可以嵌入到字节码中。JAVA虚拟机可以保留注解。

注解的用途:

- 编译格式检查

- 依赖关系描述

- 反射中解析

- 生成帮助文档

内置注解

系统已经存在的注解

流程:程序执行到某个方法或某个属性,获得该方法或属性的注解,根据注解的名称进行检查

@Override:重写,只可以添加在方法,归类到“编译格式检查”

定义在java.lang.Override

@Deprecated

 

 @FunctionalInterface:函数式接口,如Callable、Runnable、Comparator等接口都有该注解。

函数式接口:使用lamda表达式省略匿名类的构造,并且可读性更强,但并不是所有接口都可以这般操作,只有函数式接口

函数式接口特点:

- 有且仅有一个抽象方法(可以由多个静态方法、默认方法或重写Object的方法,但只能有一个抽象方法)

@Suppresswarnings:抑制编译时警告,如定义了变量但没有使用。可以加在任何位置。

 

元注解

作用在其他注解的注解

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值