首页 > 编程语言 >Java SE 宋红康 days04-高级篇-枚举类

Java SE 宋红康 days04-高级篇-枚举类

时间:2022-10-01 22:13:45浏览次数:50  
标签:Java 自定义 对象 Annotation 枚举 days04 修饰 注解 宋红康

1. 自定义枚举类

  a. 声明 类A 对象的属性:private  final 修饰

  b. 私有化类的构造器,并给对象属性赋值

  c. 提供当前枚举类的多个对象:public  static  final 修饰的

  d. 其他诉求

2. Enum 定义枚举类(建议

  a. 提供当前枚举类的对象,多个对象之间用 逗号 分隔,以 封号 结尾

  b. 声明 枚举类 对象的属性,private  final 修饰

  c. 私有化类的构造器,并给对象属性赋值

  d. 其他诉求

3. Enum 类的常用方法

  values() 方法:返回枚举类型的对象数组。该方法可以很方便地遍历所有的枚举值。

  valueOf(String str):可以把一个字符串转为对应的枚举类对象。要求字符串必须是枚举类对象的“名字”(否则异常:IllegalArgumentException)

  toString():返回当前枚举类对象常量的名称

  

 

 

4. 使用 Enum 关键字定义的枚举类实现接口的情况:

  a. 实现接口,在 Enum 类中实现抽象方法

  b. 让枚举类的对象分别实现接口中的抽象方法

5. 注解(Annotation

  使用示例

    示例一:生成文档相关的注解

    示例二:在编译时进行格式检查(JDK内置的三个基本注解)(@override、@Deprecated、@SuppressWarnings)

    示例三:跟踪代码依赖性,实现替代配置文件功能

6. 如何自定义注解(参照@SuppressWarnings定义)

  ① 注解声明为 @interface

  ② 内部定义成员,通常使用 value 表示

  ③ 可以指定成员的默认值,使用 default 定义

  ④ 如果自定义注解没有成员,表明是一个标识作用

  :如果注解有成员,在使用注解时,需要指明成员的值;必须配上注解的信息处理流程(反射)才有意义;

7. JDK提供的4个元注解(用来修饰其他Annotation定义)

  自定义元注解的时候,一般都会指明两个:Retention和Target;

  Retention:用于指定该 Annotation 的生命周期

      

  Target:用于指定被修饰的 Annotation 能用于修饰哪些程序元素。

      

  Documented(使用频率低):标识所修饰的注解在被javaDoc解析式,保留下来;

  Inherited(使用频率低):被它修饰的 Annotation 将具有 继承性;

8. JDK8新特性

  可重复注解

    ① 在 自定义注解MyAnnotation 上声明 @Repeatable,成员值为 新注解MyAnnotations.class

    ② MyAnnotation 的 Target 和 Retention 和 MyAnnotations 相同;

  类型注解

    ElementType.TYPE_PARAMETER 表示该注解能写在类型变量的声明语句中(如:泛型声明)。

    ElementType.TYPE_USE 表示该注解能写在使用类型的任何语句中。

标签:Java,自定义,对象,Annotation,枚举,days04,修饰,注解,宋红康
From: https://www.cnblogs.com/LinxhzZ/p/16747872.html

相关文章

  • 数据结构与算法【Java】08---树结构的实际应用
    前言数据data结构(structure)是一门研究组织数据方式的学科,有了编程语言也就有了数据结构.学好数据结构才可以编写出更加漂亮,更加有效率的代码。要学习好数据结构就......
  • java多线程--3 线程状态、线程方法、线程类型
    java多线程--3线程状态、线程方法、线程类型线程状态创建状态:**就绪状态:**进入状态:创建状态:启动线程阻塞状态:阻塞解除运行状态:释放CPU资源阻塞状态:......
  • Java SE 宋红康 days03-高级篇-常用类
    1.String字符串String声明为final的,不可被继承;实现了Serializable接口:表示字符串是支持序列化的;实现了Comparable接口:表示String可以比较大小St......
  • java基础--break和continue!!!!!
    break和continuebreak用于强行退出循环,不执行循环中剩余的语句,也可在switch语句中使用。break在任何循环语句主体,均可用break控制循环流程。packagecom.wang.struct;......
  • Java: Interpreter Pattern
     /***版权所有2022涂聚文有限公司*许可信息查看:*描述:*解释器模式InterpreterPattern*历史版本:JDK14.02*2022-09-12创建者geovindu*2022-0......
  • Javaweb学习笔记第十四弹---对于Cookie和Filter的学习
    ApacheTomcat-TomcatNativeDownloads会话追踪技术会话:打开浏览器,建立连接,直到一方断开连接,会话才会结束;在一次会议中,可以有多次请求。会话追踪:在多次请求间,共享数......
  • HelloWorld和Java程序运行机制
    HelloWorld1.新建java文件后缀名为.java2.编写代码publicclassHello{publicstaticvoidmain(String[]args){System.out.print("Hello,World!");......
  • 给我的Java随笔做个说明
    本说明会逐渐更新2022-10-1我的java笔记目前是根据狂神说Java的视频写的笔记,后面会慢慢加东西,都会在这个里面说明。另外:一部分笔记和大多数图片是我从其他人的笔记抄过......
  • Java(15)Object类
    前言Object类是Java中所有类的始祖,在Java中每个类都扩展了Object。如果没有明确地指出超类,Object就被认为是这个类的超类。由于在Java中每个类都是由Object类扩展而来的,所......
  • Java中队列和链表性能对比-ArrayList和LinkedList
    本文使用ArrayList和LinkedList,分别对比了队列链表的add,get的性能。 具体代码如下,可以直接运行importjava.util.ArrayList;importjava.util.LinkedList;importja......