第八章
第八章
枚举
枚举类型的对象是有限, 固定的几个常量
格式
[修饰符] enum 枚举类型名{
常量对象列表;
//常量列表必须在首行
}
[修饰符] enum 枚举类型名{
常量对象列表;
其他成员列表;
}
关于首行
super() 或 super(实参列表) 必须在子类构造器首行
this() 或 this(实参列表) 必须在本类构造器首行
package 包; 声明包的语句必须在 源文件.java 代码的首行
枚举常量对象的列表必须在枚举类首行
其他类获取枚举常量
//获取常量对象
枚举类型名.常量对象名
//获取常量对象
枚举类型名.valueOf("常量对象名")
//获取所有常量对象
枚举类型名[] arr = 枚举类型名.values();
枚举类型特点
- 枚举类型有一个公共基本父类, java.lang.Enum 类型, 所以不能继承其他类型
- 枚举类型构造器必须是私有的
- 枚举类型可以实现接口
java.lang.Enum
- 构造器
protected Enum(String name, int ordinal)
由编译器自动调用 - String name()
返回此枚举常量的名称 - int ordinal()
返回枚举常量的序数(它在枚举声明中的位置, 其中初始常量序数为零) - String toString()
返回枚举常量的名称 - int compareTo(E o)
比较顺序
注解
代码级别的注释
标记符号 @
系统预定义三个最基本注解
- @Override
- 表示某个方法是重写方法
- 它只能用在方法上面, 编译器会检查是否满足重写要求
- @SuppressWarnings(xx);
- 抑制警告
- @Deprecated(xx)
- 表示xx已过时, 不推荐使用
文档注释相关
文档注释
/**
文档注释
*/
常见文档注释
- @author
- 作者
- @Since
- 从xx版本加入
- @see
- 另请参考
- @param
- 形参
- @return
- 返回值
- @throws 或 @exception
- 异常
JUnit相关注解
- @Test
- 表示是一个单元测试方法
- 需要public void xxx(){}
- @Before
- 在每一个测试单元前执行
- 需要public void xxx(){}
- @After
- 在每一个测试单元后执行
- 需要public void xxx(){}
- @BeforeClass
- 在此类初始化时执行
- 只执行一次
- 需要public static void xxx(){}
- @AfterClass
- 在此类"卸载"时执行
- 只执行一次
- 需要public static void xxx(){}
元注解
- @Target(xx)
- 用它标注的注解可以用在xx位置
- xx是ElementType枚举类型的10个常量对象指定
- @Target(ElementType.TYPE)
接口, 类, 枚举 - FIELD
字段, 枚举的常量 - METHOD
方法 - PARAMETER
方法参数 - CONSTRUCTOR
构造函数 - LOCAL_VARIABLE
局部变量 - ANNOTATION_TYPE
注解 - PACKAGE
包
- @Target(ElementType.TYPE)
- @Retention
- 用它标识的注解可以滞留到xx阶段
- SOURC
- CLASS
- RUNTIME
只有这个注解可以通过反射获取到
- 用它标识的注解可以滞留到xx阶段
- @Document
- 说明该注解将被包含在javadoc中(API)
- @Inherited
- 说明子类可以继承父类中的该注解
@Target({ElementType.TYPE,ElementType.FIELD})
自定义注解
@元注解
[修饰符] @interface 注解名 {
}
@元注解
[修饰符] @interface 注解名 {
配置参数列表
}
配置参数语法格式
数据类型 配置参数名();
数据类型 配置参数名() default 默认值;
数据类型要求
- 八种基本数据类型
- String
- 枚举
- Class
- 注解
- 以上的数组
声明了的配置参数使用时必须赋值, 除非有默认值
@自定义注解名(配置参数1 = 值, 配置参数2 = {值})
配置参数只有一个且参数名为value, 可以直接@自定义注解名(值)
读取这个注解可以像静态方法一样访问
自定义注解对象.配置参数();

浙公网安备 33010602011771号