一、枚举
概述:枚举是一种特殊的类,表示一组常量
定义格式:
public enum 枚举类名{ 枚举项1,枚举项2,枚举项3; }
特点:
1. 所有枚举类都是Enum类的子类,所以枚举类可以使用Enum类中的方法
2. 可以通过枚举类名.枚举项去访问指定的枚举项
3. 每一个枚举项实际上是是该枚举类的一个对象
4. 枚举项可以有构造方法,但必须是private修饰,如果不提供无参构造,则必须在枚举项中使用有参构造
5. 枚举类还可以有成员变量,成员方法,抽象方法,但是抽象方法必须在枚举项中重写
6. 枚举类第一行必须是枚举项
常用方法:
方法名 | 说明 |
String name() | 获取枚举项名称 |
int ordinal() | 返回枚举项索引 |
int compartTo(E o) | 返回与其他枚举项索引的差值 |
String toString() | 返回枚举项名称 |
static T valueOf(Class type,String name) | 获取指定枚举类中指定名字的枚举项 |
T[] values() | 获取所有的枚举项 |
二、注解
注解作用是:对程序进行标注和解释
三个注解:
注解 | 说明 |
@Override | 描述子类重写父类方法 |
@Deprecated | 描述方法过时 |
@SuppressWarnings | 压制警告 |
注解和注释的区别:
1、注释是给程序员看
2、注解时给编译器看(让虚拟机看到程序中的注解,注解代表程序的一些特殊功能)
自定义注解:
格式:
public @interface 注解名{ public 元素类型 元素名() default 默认值; }
元素前的public修饰是默认的可以省略,但是不能使用其他的修饰
default是用来设置默认值的,在使用的时候如果不指定元素的值则默认是设置的这个默认值
元素类型可以使用如下:
基本数据类型
String类型
Class类型
注解类型
枚举类型
以上类型的一维数组
元注解:
1. 元注解是修饰注解的注解,JDK提供了一些元注解使用
2. 常用元注解
@Target :用于定义被修饰的注解可以应用于代码中的哪些位置,如
1. 类或接口: ElementType.TYPE
2. 成员变量: ElementType.FIELD
3. 成员方法: ElementType.METHOD
4. 构造方法: ElementType.CONSTRUCTOR
5. 方法参数: ElementType.PARAMETER
6. 范例 :
@Target(ElementType.TYPE) public @interface Demo{}//说明Demo注解可以用在类前面
@Retention :用于定义注解的生命周期
1. 仅编译期: RetentionPolicty.SOURCE
2. 仅class文件: RetentionPolicty.CLASS
3. 运行期: RetentionPolicty.RUNTIME
4. 通常我们自定义的注解是在运行期使用的,所以自定义注解时会使用这个元注解修饰自定义注解,并设置为RetentionPolicty.RUNTIME
注解的使用:
1、格式:
//方式1,给指定的元素赋值,没有赋值的将使用默认值 @注解名(元素1 = 属性值,元素2 = 属性值) //方式2,给元素名为value的元素赋值,value是特殊的一个元素,如果自定义注解中不给 出该元素而使用这种方式赋值会报错 @注解名(属性值) //方式3,全部元素使用默认值 @注解名
● Class.isAnnotationPresent(Class)
● Field.isAnnotationPresent(Class)
● Method.isAnnotationPresent(Class)
● Constructor.isAnnotationPresent(Class)
● 注意:方法的参数是需要判断的注解的Class对象,返回值类型是boolean
三、单元测试
● 使用Junit来进行单元测试
● Junit提供注解来识别测试方法
● 可以查看允许情况
● 基本使用步骤:
1. 将Junit的jar包导入项目
2. 测试的方法必须是公共的、无参数、无返回值的非静态方法
3. 在需要测试的方法上方用@Test注解标注该方法是个测试方法
4. 开始测试
● 常用的三个注解:
注解 | 说明 |
@Test | 表示测试该方法 |
@Before | 表示在测试的方法前运行 |
@After | 表示在测试的方法后运行 |