枚举

一、枚举(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枚举和注解的更多相关文章

  1. Java - 枚举与注解

    Enumeration 于Java 1.5增加的enum type... enum type是由一组固定的常量组成的类型,比如四个季节.扑克花色. 在出现enum type之前,通常用一组int常量表 ...

  2. 编写高质量代码:改善Java程序的151个建议(第6章:枚举和注解___建议88~92)

    建议88:用枚举实现工厂方法模式更简洁 工厂方法模式(Factory Method Pattern)是" 创建对象的接口,让子类决定实例化哪一个类,并使一个类的实例化延迟到其它子类" ...

  3. Effective java笔记(五),枚举和注解

    30.用enum代替int常量 枚举类型是指由一组固定的常量组成合法值的类型.在java没有引入枚举类型前,表示枚举类型的常用方法是声明一组不同的int常量,每个类型成员一个常量,这种方法称作int枚 ...

  4. [Effective Java]第六章 枚举和注解

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  5. 《Effective Java》学习笔记 —— 枚举、注解与方法

    Java的枚举.注解与方法... 第30条 用枚举代替int常量 第31条 用实例域代替序数 可以考虑定义一个final int 代替枚举中的 ordinal() 方法. 第32条 用EnumSet代 ...

  6. Java复习——枚举与注解

    枚举 枚举就是让某些变量的取值只能是若干固定值中的一个,否则编译器就会报错,枚举可以让编译器在编译阶段就控制程序的值,这一点是普通变量无法实现的.枚举是作为一种特殊的类存在的,使用的是enum关键字修 ...

  7. [Java读书笔记] Effective Java(Third Edition) 第 6 章 枚举和注解

    Java支持两种引用类型的特殊用途的系列:一种称为枚举类型(enum type)的类和一种称为注解类型(annotation type)的接口. 第34条:用enum代替int常量 枚举是其合法值由一 ...

  8. Java基础(十)——枚举与注解

    一.枚举 1.介绍 枚举类:类的对象只有有限个,确定的.当需要定义一组常量时,强烈建议使用枚举类.如果枚举类中只有一个对象,则可以作为单例模式的实现. 使用 enum 定义的枚举类默认继承了 java ...

  9. java 反射,注解,泛型,内省(高级知识点)

     Java反射 1.Java反射是Java被视为动态(或准动态)语言的一个关键性质.这个机制允许程序在运行时透过Reflection APIs    取得任何一个已知名称的class的内部信息, 包括 ...

随机推荐

  1. 一文学会text-justify,orientation,combine文本属性

    大家好,我是半夏,一个刚刚开始写文的沙雕程序员.如果喜欢我的文章,可以关注 点赞 加我微信:frontendpicker,一起学习交流前端,成为更优秀的工程师-关注公众号:搞前端的半夏,了解更多前端知 ...

  2. 【openstack】红帽公开课笔记内容openstack

    overcloud节点自省失败(introspection) 节点自省--获取overcloud

  3. k8s client-go源码分析 informer源码分析(1)-概要分析

    k8s informer概述 我们都知道可以使用k8s的Clientset来获取所有的原生资源对象,那么怎么能持续的获取集群的所有资源对象,或监听集群的资源对象数据的变化呢?这里不需要轮询去不断执行L ...

  4. c++:-3

    上一节学习了C++的函数:c++:-2,本节学习C++的数组.指针和字符串 数组 定义和初始化 定义 例如:int a[10]; 表示a为整型数组,有10个元素:a[0]...a[9] 例如: int ...

  5. 0.1+0.2不等于0.3,微信小程序云开发如何解决JavaScript小数计算精度失准的问题

    先看图 这个是JavaScript语言自身存在的一个问题.说道这里不得不提一下网上流传的JavaScript搞笑图 我们在使用云开发来开发微信小程序的时候,会经常遇到JavaScript小数计算精度失 ...

  6. 理解 Angular 服务

    理解 Angular 服务 本文写于 2021 年 3 月 29 日 理解 Angular 服务 什么是服务 服务写法 原理简述 提供服务 1. 在服务中注册 2. 在 module 中注册 3. 在 ...

  7. vue-router实现原理及简易demo

    自定义路由demo,git地址: git@github.com:xsk-walter/Vue-router.git 一.router基本使用 ① 创建和路由相关的组件 ②Vue.use(vueRout ...

  8. SpringBoot Redis 实践指南

    前言 SpringBoot Cache 是一个很好的缓存框架,可以兼容多种缓存实现,数据量较大的情况下,Redis 应该是最多被使用的. 本文重点介绍 SpringBoot 和 Redis 整合使用的 ...

  9. 140_Power BI&Power Pivot之降维展示同类型比较

    博客:www.jiaopengzi.com 焦棚子的文章目录 请点击下载附件 一.背景 最近一段时间比较忙,几乎没有时间更新网站内容,今天刚好周末,更新一个简单的需求. 上效果图: 在我们日常做对比分 ...

  10. MongoDB启动报错:Unrecognized option: storage try 'mongod --help' for more information(已解决)

    问题说明: 今天在使用配置文件方式启动MongoDB时,一直启动失败,报错显示:Unrecognized option: storage try 'mongod --help' for more in ...