开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第20天,点击查看活动详情
目录
一、枚举
概述:枚举是一种特殊的类,表示一组常量
定义格式:
public enum 枚举类名{
枚举项1,枚举项2,枚举项3;
}
特点:
所有枚举类都是Enum类的子类,所以枚举类可以使用Enum类中的方法
可以通过枚举类名.枚举项去访问指定的枚举项
每一个枚举项实际上是是该枚举类的一个对象
枚举项可以有构造方法,但必须是private修饰,如果不提供无参构造,则必须在枚举项中使用有参构造
枚举类还可以有成员变量,成员方法,抽象方法,但是抽象方法必须在枚举项中重写
枚举类第一行必须是枚举项
常用方法:
| 方法名 | 说明 |
| 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类型
注解类型
枚举类型
以上类型的一维数组
元注解:
-
元注解是修饰注解的注解,JDK提供了一些元注解使用
-
常用元注解
@Target :用于定义被修饰的注解可以应用于代码中的哪些位置,如
类或接口: ElementType.TYPE
成员变量: ElementType.FIELD
成员方法: ElementType.METHOD
构造方法: ElementType.CONSTRUCTOR
方法参数: ElementType.PARAMETER
范例 :
@Target(ElementType.TYPE) public @interface Demo{}//说明Demo注解可以用在类前面
@Retention :用于定义注解的生命周期
仅编译期: RetentionPolicty.SOURCE
仅class文件: RetentionPolicty.CLASS
运行期: RetentionPolicty.RUNTIME
通常我们自定义的注解是在运行期使用的,所以自定义注解时会使用这个元注解修饰自定义注解,并设置为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提供注解来识别测试方法
● 可以查看允许情况
● 基本使用步骤:
- 将Junit的jar包导入项目
- 测试的方法必须是公共的、无参数、无返回值的非静态方法
- 在需要测试的方法上方用@Test注解标注该方法是个测试方法
- 开始测试
● 常用的三个注解:
| 注解 | 说明 |
| @Test | 表示测试该方法 |
| @Before | 表示在测试的方法前运行 |
| @After | 表示在测试的方法后运行 |