第八章

第八章

枚举

枚举类型的对象是有限, 固定的几个常量

格式

[修饰符] 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
  • @Retention
    • 用它标识的注解可以滞留到xx阶段
      • SOURC
      • CLASS
      • RUNTIME
        只有这个注解可以通过反射获取到
  • @Document
    • 说明该注解将被包含在javadoc中(API)
  • @Inherited
    • 说明子类可以继承父类中的该注解

@Target({ElementType.TYPE,ElementType.FIELD})

自定义注解

@元注解
[修饰符] @interface 注解名 {
	
}

@元注解
[修饰符] @interface 注解名 {
	配置参数列表
}

配置参数语法格式

数据类型 配置参数名();

数据类型 配置参数名() default 默认值;
数据类型要求
  • 八种基本数据类型
  • String
  • 枚举
  • Class
  • 注解
  • 以上的数组

声明了的配置参数使用时必须赋值, 除非有默认值

@自定义注解名(配置参数1 = 值, 配置参数2 = {值})

配置参数只有一个且参数名为value, 可以直接@自定义注解名(值)

读取这个注解可以像静态方法一样访问

自定义注解对象.配置参数();
posted @ 2020-03-16 10:27  烟熏咸鱼干  阅读(113)  评论(0)    收藏  举报