java枚举和注解
枚举
一、枚举(enumeration)
是一组常量的集合,可以理解为:枚举属于一种特殊的类,里面只包含一组有限的特定的对象,构造方法默认为private。
二、枚举的两种实现方式
1、自定义实现枚举
- 不需要提供set方法,以为枚举对象值同城为只读;
- 对枚举对象/属性使用final+static共同修饰,实现底层优化;
- 枚举对象名通常使用全部大写,常量的命名规范;
- 枚举对象根据需要,可以有多个属性
2、使用enmu关键字实现枚举
注意事项:
- 当我们使用enum关键字开发一个枚举类时,默认会继承Enum类
- 传统的 public static final Season2 SPRING = new Season2(“春天”,“温暖”);
- 简化为 SPRING (“春天”,“温暖”);
- 如果使用无参构造器 创建 枚举对象,则实参列表和小括号都可以省略
- 当有多个枚举类型时,则使用逗号间隔,最后一个分号结尾;
- 枚举对象必须放在枚举类的行首。
三、枚举的成员方法

四、枚举类实现接口
(1)使用enum关键字之后,就不能再继承其他类了,因为enum会隐式的继承Enum,而java是单继承机制;
(2)枚举类和普通类一样,可以实现接口,如下形式:
enum 类名 implements 接口1,接口2{}
注解:
一、理解:
- 注解(Annotation)也 称为 元数据(Metadata),用于修饰解释 包、类、方法、属性、构造器、局部变量 等 数据信息
- 和 注释 一样,注解不影响程序逻辑,但注解可以 被 编译 或 运行,相当于嵌入在代码中的补充信息;
- 在javaSE中,注解的使用目的比较简单,例如标记过时的功能,忽略警告 等等,在javaSE中注解占据了更重要的角色,例如用来配置应用程序的任何切面,代替java EE 旧版中所遗留的繁冗代码和XML配置等等。
二、基本的注解介绍:
- 使用注解时要在其前面增加 @ 符号,并把该注解方程一个修饰符使用,用于修饰它支持的程序元素;
1、@override:限定某个方法,是重写父类方法,该注解只能用于方法;
(1)@override表示指定重写父类的方法;
(2)如果不写@override 注解,而父类仍有方法,仍然构成重写;
(3)@override只能修饰方法,不能修饰其他类,包,属性等等;
(4)查看@override注解源码为
@Target(ElementType.METHOD);说明只能修饰方法;
(5)@Target是修饰注解的注解,称为元注解。
2、@Deprecated:用于表示某个程序元素(类,方法等等)已过时;
(1)可以修饰方法,类,字段,包,参数等等;
(2)@Deprecated的作用可以做到新旧版本的兼容和过渡。
3、@SuppressWarnings:抑制编译器警告
@SuppressWarnings({"all"})
补充说明:@interface的说明
@interface不是interface,是注解类,是jdk1.5之后加入的
三、元注解:
1、基本介绍:
JDK的元注解用于修饰其他注解
元注解:本身作用不大
2、元注解的种类:
(1)Retention://指定注解的作用范围,三种SOURCE,CLASS,RUNTIME;
(2)Tatget://指定注解可以在哪些地方使用;
(3)Documented://指定该注解是否会在javadoc体现
(4)Inherited://子类会继承父类注解
java枚举和注解的更多相关文章
- Java - 枚举与注解
Enumeration 于Java 1.5增加的enum type... enum type是由一组固定的常量组成的类型,比如四个季节.扑克花色. 在出现enum type之前,通常用一组int常量表 ...
- 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)
建议88:用枚举实现工厂方法模式更简洁 工厂方法模式(Factory Method Pattern)是" 创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延迟到其它子类" ...
- Effective java笔记(五),枚举和注解
30.用enum代替int常量 枚举类型是指由一组固定的常量组成合法值的类型.在java没有引入枚举类型前,表示枚举类型的常用方法是声明一组不同的int常量,每个类型成员一个常量,这种方法称作int枚 ...
- [Effective Java]第六章 枚举和注解
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- 《Effective Java》学习笔记 —— 枚举、注解与方法
Java的枚举.注解与方法... 第30条 用枚举代替int常量 第31条 用实例域代替序数 可以考虑定义一个final int 代替枚举中的 ordinal() 方法. 第32条 用EnumSet代 ...
- Java复习——枚举与注解
枚举 枚举就是让某些变量的取值只能是若干固定值中的一个,否则编译器就会报错,枚举可以让编译器在编译阶段就控制程序的值,这一点是普通变量无法实现的.枚举是作为一种特殊的类存在的,使用的是enum关键字修 ...
- [Java读书笔记] Effective Java(Third Edition) 第 6 章 枚举和注解
Java支持两种引用类型的特殊用途的系列:一种称为枚举类型(enum type)的类和一种称为注解类型(annotation type)的接口. 第34条:用enum代替int常量 枚举是其合法值由一 ...
- Java基础(十)——枚举与注解
一.枚举 1.介绍 枚举类:类的对象只有有限个,确定的.当需要定义一组常量时,强烈建议使用枚举类.如果枚举类中只有一个对象,则可以作为单例模式的实现. 使用 enum 定义的枚举类默认继承了 java ...
- java 反射,注解,泛型,内省(高级知识点)
Java反射 1.Java反射是Java被视为动态(或准动态)语言的一个关键性质.这个机制允许程序在运行时透过Reflection APIs 取得任何一个已知名称的class的内部信息, 包括 ...
随机推荐
- 技术管理进阶——一线Leader与大Leader的差异是什么?
原创不易,求分享.求一键三连 前几年,因为下属的一些骚操作,Leader对我产生了误会,这导致了一些"不信任",这种不信任在短时间会让人丧失安全感,很多人会因此患得患失. 这种 ...
- XCTF练习题---MISC---适合作为桌面
XCTF练习题---适合作为桌面 flag:flag{38a57032085441e7} 解题步骤: 1.观察题目,下载附件 2.拿到题目以后是一张图片,切换一下通道,发现一张二维码,使用QR进行翻译 ...
- XCTF练习题---CRYPTO---Railfence解析
XCTF练习题---CRYPTO---Morse解析 flag:cyberpeace{railfence_cipher_gogogo} 解题步骤: 1.观察题目,下载附件进行查看 2.根据题目提示,发 ...
- JSP标签、JSTL标签、EL表达
JSP页面转发,附带数据 <jsp:forward page="/jsptag2.jsp"> <jsp:param name="name" v ...
- 从零开始,开发一个 Web Office 套件(16):拖动控制点,调整编辑器大小
这是一个系列博客,最终目的是要做一个基于 HTML Canvas 的.类似于微软 Office 的 Web Office 套件(包括:文档.表格.幻灯片--等等). 博客园:<从零开始, 开发一 ...
- [笔记] 有向无环图 DAG
最小链覆盖 (最长反链) 最小链覆盖 \(=n-\) 最大匹配. 考虑首先每个点自成一条链,此时恰好有 \(n\) 条链,最终答案一定是合并(首尾相接)若干条链形成的. 将两点匹配的含义其实就是将链合 ...
- [题解] trip
题目大意 给定一颗大小为 \(N\) 的树, \(1\)的度数不小于 \(2\) .每个点有一个颜色,要么为黑色要么为白色. 从 \(1\) 号点开始游走,计数器初始为 \(0\). 如果当前为黑点计 ...
- MybatisCodeHelperPro简单使用
1.idea安装 2.连接mysql 3.创建实体等关联类 ,选择数据库表右键选择如图 4配置 生成后的 5简单应用 可以直接生成xml 总结:非常的方便快捷.
- Blazor和Vue对比学习(基础1.3):属性和父子传值
组件除了要解决视图层展示.视图层与逻辑层的数据绑定,还需要解决一个重大问题,就是在组件树中实现数据传递,包括了父到子.子到父.祖到孙,以及任意组织之间.而我们上一章讲到的实现双向绑定的两个指令,Vue ...
- [数学基础] 4 欧几里得算法&扩展欧几里得算法
欧几里得算法 欧几里得算法基于的性质: 若\(d|a, a|b\),则\(d|(ax+by)\) \((a,b)=(b,a~mod~b)\) 第二条性质证明: \(\because a~mod~b=a ...