Java枚举和注解

枚举

需求:建立一个只有固定的、有限的几个值的对象,只读,不需要修改。

解决方案:枚举

  1. 枚举对应英文 enumeration 简写 enum
  2. 枚举是一组常量的集合
  3. 枚举属于一种特殊的类,里面只包含一组有限的限定的对象

枚举的实现方式

  1. 自定义类实现枚举
  2. 使用 enum 关键字实现枚举

自定义类实现枚举

  1. 将构造器私有化,防止直接 new
  2. 可以提供get方法,但不提供 set 方法,防止属性被修改
  3. 在类的内部,直接创建固定的对象,使用 final+static 共同修饰,实现底层优化。
  4. 对象名通常使用全部大写,常量命名的规范
class Season {//类
	private String name;
	private String desc;//描述
	//定义了四个对象, 固定. 
    public static final Season SPRING = new Season("春天", "温暖");
	public static final Season WINTER = new Season("冬天", "寒冷");
	public static final Season AUTUMN = new Season("秋天", "凉爽");
	public static final Season SUMMER = new Season("夏天", "炎热");
    
    private Season(String name, String desc) {
		this.name = name;
		this.desc = desc;
	}
}
//调用
System.out.println(Season.SPRING);

enum关键字实现枚举

  1. 使用 enum 替代 class

  2. 创建对象简写为

    SPRING("春天", "温暖");		//常量名(实参列表):
    
  3. 如果有多个常量(对象),使用逗号间隔,最后分号结尾。

    SPRING("春天", "温暖"), WINTER("冬天", "寒冷"); 
    

注意事项:

  1. 当使用enum关键字创建枚举类时,默认会继承Enum类,且此枚举类被final修饰。

  2. 简化的创建对象语句等同于传统方法,都调用了构造器,需要确定调用的是哪个构造器。

  3. 如果调用的是无参构造器,则实参列表和小括号都可以省略。

  4. 如果使用 enum 实现枚举,则必须将定义常量对象语句写在最前面。

  5. 使用 enum 关键字后,就不能再继承其它类了,因为 enum 会隐式继承 Enum,而 Java 是单继承机制。

  6. 枚举类和普通类一样,可以实现接口,如下形式。

    enum 类名 implements 接口 1,接口 2{}
    

enum常用方法:

  1. ordinal():对象调用,输出该枚举对象的次序/编号,从 0开始编号
  2. values():类调用,返回该类定义的所有枚举对象
  3. valueOf():类调用,按照括号中传入的字符串查找是否有对象名与其相同的枚举对象
  4. compareTo():对象1调用,括号内传入对象2,比较两个对象的编号,返回对象1编号-对象2编号。

注解

  1. 注解(Annotation)也被称为元数据(Metadata),用于修饰解释 包、类、方法、属性、构造器、局部变量等数据信息。
  2. 和注释一样,注解不影响程序逻辑,但注解可以被编译或运行,相当于嵌入在代码中的补充信息。
  3. 在 JavaSE 中,注解的使用目的比较简单,例如标记过时的功能,忽略警告等。在 JavaEE 中注解占据了更重要的角 色,例如用来配置应用程序的任何切面,代替 java EE 旧版中所遗留的繁冗代码和 XML 配置等。

基本的Annotation介绍

使用 Annotation 时要在其前面增加 @ 符号, 并把该 Annotation 当成一个修饰符使用。用于修饰它支持的程序元 素 三个基本的 Annotation:

  1. @Override: 限定某个方法,是重写父类方法, 该注解只能用于方法 (会进行语法检测)

  2. @Deprecated: 用于表示某个程序元素(类, 方法等)已过时(即不再推荐使用,但仍可以使用)

  3. @SuppressWarnings: 抑制编译器警告。当我们不希望看到这些警告的时候,可以使用

    @SuppressWarnings{""}
    

    来抑制警告信息。在{""} 中,可以写入你希望抑制(不显示)警告信息。作用范围是和放置的位置相关,通常放置在方法,语句,类上一行,进行抑制。

元注解(了解)

JDK 的元 Annotation 用于修饰其他 Annotation

  1. Retention //指定注解的作用范围,三种 SOURCE,CLASS,RUNTIME
  2. Target // 指定注解可以在哪些地方使用
  3. Documented //指定该注解是否会在 javadoc 体现
  4. Inherited //子类会继承父类注解
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值