枚举关键字enum
值固定时使用枚举
若枚举只有一个成员, 则可以作为一种单例模式的实现方式.
枚举类对象的属性不应允许被改动, 所以应该使用 private final 修饰
必须在枚举类的第一行声明枚举类对象。
枚举类和普通类的区别:
- 使用 enum 定义的枚举类默认继承了 java.lang.Enum 类
- 枚举类的构造器只能使用 private 访问控制符
- 枚举类的所有实例必须在枚举类中显式列出(,逗号 分隔 ; 分号结尾). 列出的实例系统会自动添加 public static final 修饰
- JDK 1.5 中可以在 switch 表达式中使用Enum定义的枚举类的对象作为表达式, case 子句可以直接使用枚举值的名字, 无需添加枚举类作为限定
枚举类的主要方法:
values()方法:返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值。
valueOf(String str):可以把一个字符串转为对应的枚举类对象。要求字符串必须是枚举类对象的“名字”。如不是,会有运行时异常。
和普通 Java 类一样,枚举类可以实现一个或多个接口
若需要每个枚举值在调用实现的接口方法呈现出不同的行为方式, 则可以让每个枚举值分别来实现该方法
注解Annotation
从 JDK 5.0 开始, Java 增加了对元数据(MetaData) 的支持, 也就是 Annotation(注解)
Annotation 其实就是代码里的特殊标记, 这些标记可以在编译, 类加载, 运行时被读取, 并执行相应的处理. 通过使用 Annotation, 程序员可以在不改变原有逻辑的情况下, 在源文件中嵌入一些补充信息.
Annotation 可以像修饰符一样被使用, 可用于修饰包,类, 构造器, 方法, 成员变量, 参数, 局部变量的声明, 这些信息被保存在 Annotation 的 “name=value” 对中.
Annotation 能被用来为程序元素(类, 方法, 成员变量等) 设置元数据
基本的 Annotation
使用 Annotation 时要在其前面增加 @ 符号, 并把该 Annotation 当成一个修饰符使用。用于修饰它支持的程序元素
三个基本的 Annotation:
@Override: 限定重写父类方法, 该注释只能用于方法
@Deprecated: 用于表示某个程序元素(类, 方法等)已过时
@SuppressWarnings: 抑制编译器警告
注解与注释不同
注解与普通代码的注释有一定的区别,也有一定的联系。注解和注释都是属于代码的描述,注释只是简单的描述程序的信息,他不会被程序所读取,而注解则是Java代码中的特殊标记,这些标记可以在编译、类加载、运行时被读取,并执行相应的处理。
注解的-类型是一个接口
注解都继承自:java.lang.annotation.Annotation包下的Annotation接口。程序可以通过 反射 来获取指定程序元素的注解对象。
- 元注解 (Meta Annotation)【JDK除了在java.lang包下面提供了三个内建注解之外,还在java.lang.annotation包下提供了四个元注解,这四个元注解都用于修饰其他注解定义】
- @Retention
- @Target
- @Documented
- @Inherited
- 自定义注解
- 自定义注解需要用到@interface自定义注解。
什么是注解?
注解,也就是Java的元数据,可以以标签的形式存在于Java代码中的,注解的存在,并不影响程序代码编译和执行,它只是用来生成其他的文件或使用在运行时只带被运行代码的描述信息。
注解概述:
- 为什么使用注解
- 注解可以提供用来完整地描述程序所需信息,而这些信息是用Java无法表达的,所以呢,注解使得我们,能够以 将由编译器来测试和验证的格式,存储有关程序的额外信息。
- 可以生成描述文件,甚至是新的类的定义。并且有助于减轻编写样本代码的负担。同时,使用注解还可以使我们的代码更干净易读。需要注意的是,注解并不影响代码的执行。无论增加,删除注解代码都是始终如一的执行。如果希望注解在程序运行的时候能起一定的作用,则需要先通过反射,然后再对注解进行处理。
- 工作方式
- 使用注解的基本语法
注解的分类: