枚举【enumeration】

枚举是一组常量的集合;

属于一种特殊的类,里面只包含一组有限的特定的对象;

自定义类实现枚举——应用

  1. 不需要提供 setxxx 方法,因为枚举对象值通常为只读

  2. 对枚举对象/属性使用 final+static 共同修饰,实现底层优化;

  3. 枚举对象名通常使用全部大写,常量的命名规范;

  4. 枚举对象根据需要,也可以有多个属性;

public class Enumeration_01 {public static void main(String[] args) {System.out.println(Season.SPRING);System.out.println(Season.SUMMER);System.out.println(Season.AUTUMN);System.out.println(Season.WINNER);}
}
class Season{private String  name;private String  desc;//第三:在Season内部 定义四个固定的枚举对象;public static final Season SPRING=new Season("春天","舒服");public static final Season SUMMER=new Season("夏天","炎热");public static final Season AUTUMN=new Season("秋天","凉爽");public static final Season WINNER=new Season("冬天","寒冷");//第一:构造器私有化,防止直接new对象出来;private Season(String name, String desc) {this.name = name;this.desc = desc;}//第二不设置set方法;防止属性被修改;public String getName() {return name;}public String getDesc() {return desc;}@Overridepublic String toString() {return "Season{" +"name='" + name + '\'' +", desc='" + desc + '\'' +'}';}
}

小结:

  1. 构造器私有化

  2. 类内部创建一组对象;

  3. 对外暴露对象【即:public static final修饰】

  4. 提供get方法,不提供set方法;

枚举类

使用关键字enum时,会隐式的继承Enum类、不能再extends其他类;

说明

第一:使用enum来代替class;

第二:public static final Season SPRING=new Season("春天","舒服")————>>SPRING ("春天","舒服")

第三:多个常量,用逗号 ,隔开

第四:如果使用enum来实现枚举。要求将定义常量对象,写在前面;

第五:如果我们使用的是无参构造器,创建常量对象,可以省略();

package com.cc.Enumeration_02;
public class Enumeration_02 {public static void main(String[] args) {System.out.println(Season2.SPRING);System.out.println(Season2.SUMMER);System.out.println(Season2.AUTUMN);System.out.println(Season2.WINNER);}
}
//枚举类enum
//第一:使用enum来代替class;
enum Season2{
//第二:public static final Season SPRING=new Season("春天","舒服");
//改写:————>>SPRING ("春天","舒服")
//第三:多个常量,用逗号  ,隔开
//第四:如果使用enum来实现枚举。要求将定义常量对象,写在前面;
//第五:如果我们使用的是无参构造器,创建常量对象,可以省略();SPRING ("春天","舒服"),SUMMER("夏天","炎热"),AUTUMN("秋天","凉爽"),WINNER("冬天","寒冷"),What();//也可写出What;private String  name;private String  desc;//无参构造器private Season2(){
​}private Season2(String name, String desc) {this.name = name;this.desc = desc;}//第二不设置set方法;防止属性被修改;public String getName() {return name;}public String getDesc() {return desc;}@Overridepublic String toString() {return "Season{" +"name='" + name + '\'' +", desc='" + desc + '\'' +'}';}
}

enum常用方法

练习 

public class Enumeration_exercise01 {public static void main(String[] args) {//获取枚举的所有对象,就是一个数组Week[] weeks = Week.values();//遍历取出,//增强的for循环,每次从weeks取出,直到嘴后一个取完结束;for(Week week:weeks){System.out.println(week);//输出week;}}
}
//声明枚举类Week
enum Week {MONDAY("星期一"),TUESDAY("星期二"),WEDNESDAY("星期三"),THURSDAY("星期四"),FRIDAY("星期五"),STAURDAY("星期六"),SUNDAY("星期日");private String name;public String getName() {return name;}private  Week(String name) {this.name = name;}@Overridepublic String toString() {return   name;}
}

可以用来实现接口:

public class demo {public static void main(String[] args) {a.Q.y();//实现接口}
}
interface c{    public void y();}//接口c
enum a implements c{Q("QQ号") ;private String q;public void y(){System.out.println("123123131");};a(String q) {this.q = q;}
}

注解【annotation】

说明:

注解也被称为元数据(metadata),用于修饰解释包、类、方法、属性、构造器、局部变量等数据信息;

和注释一样,注解不影响程序逻辑,但注解可以被编译或运行,相当于嵌入在代码中的补充信息

@Target是修饰注解的注解, 也叫元注解;【概念】

1、@Override

  • 表示指定重写父类的方法(在编译层面),如果不是则会报错;

  • 不写@Override,但构成方法的重写也不影响;

2、@Deprecated

  • @Deprecated修饰某个元素,表示该元素已经过时。

  • 不推荐使用,但仍然可以使用

  • 从@Deprecated源码可以看出,可以用来修饰方法,类,包,字段,参数,等等;

  • @Deprecated可以坐版本升级过渡使用

3、@SuppressWarnings

  • 当我们不希望看到警告的时候,可以用@SuppressWarnings来抑制警告信息;

  • 在{" "}中,可以写入你希望抑制的警告信息;

  • 作用范围与@SuppressWarnings的位置有关;

韩顺平Java学习【枚举、注解】(笔记)相关推荐

  1. 韩顺平Java学习 泛型

    目录 一.泛型的语法 1.传统的方法遍历集合存在的问题 2.使用泛型来解决传统集合添加元素带来的问题 3.泛型使用介绍 4.泛型的使用细节 5.泛型课堂练习 二.自定义泛型 1.自定义泛型类的规范 ​ ...

  2. B站韩顺平java学习笔记(三)--运算符章节

    目录 一.算术运算符 1.  表格 2.  练习题: 二. 关系运算符 1.  表格 三.逻辑运算符 1.  表格 2.  练习题 四.赋值运算符 1.  介绍 2.细节特点 五.三元运算符 1.  ...

  3. B站韩顺平java学习笔记(六)--面向对象编程章节

    目录 一.类和对象 1.定义及区别 2.对象内存布局 3.属性/成员变量 (1)基本介绍 (2)注意事项和细节说明 (3)访问属性 4.对象 (1)创建对象 (2)对象分配机制 ​(3)Java创建对 ...

  4. 韩顺平Java学习笔记_IO流专题

    目录 一 文件 1.文件的概念: 文件是保存数据的地方 2.文件流:文件在程序中是以流的形式来操作的 2.1.输入流指数据从数据源(文件)到程序(内存)的路径 2.2.输出流指数据从程序(内存)到数据 ...

  5. 韩顺平Java学习笔记P245对象创建流程分析P246this关键字-P250

    P245对象创建流程分析 //1.先在方法区加载方法类 //2.在堆里开空间一个存放age,一个存放name //3.(先默认初始化有默认值age=0,name=null,再显示初始化age=90,n ...

  6. B站韩顺平java学习笔记(十六)-- 多线程基础章节

    目录 一  线程介绍 1  线程相关概念 (1)程序 (2)进程 (3)什么是线程 (4)其他相关概念 (5)查看电脑有多少个cpu核 二  线程的使用 1  线程的创建 (1)继承Thread类,重 ...

  7. B站韩顺平java学习笔记(八)-- 房屋出租系统(项目)章节

    目录 一 项目需求说明 1 项目界面 二  房屋租赁程序框架图 ​三  系统实现 1  完成House类 2  显示主菜单和完成退出软件的功能 3  完成显示房屋列表的功能 4  添加房屋信息的功能 ...

  8. B站韩顺平java学习笔记(二十五)-- 正则表达式章节

    目录 一  正则表达式入门 1  极速体验正则表达式威力 二  为什么要学正则表达式 三  正则表达式基本介绍 1  介绍 2  正则表达式底层实现

  9. B站韩顺平java学习笔记(二十三)-- MYSQL基础篇 章节

    目录 一  数据库 1  数据库简单原理图 2  使用命令行窗口连接MYSQL数据库 3  MySQL三层结构 4  数据在数据库中的存储方式 5  SQL语句分类 6  创建数据库 7  查看.删除 ...

最新文章

  1. Java集合---LinkedList源码解析
  2. Server.UrlEncode、HttpUtility.UrlDecode不同编码
  3. git常见命令 的区分
  4. unity3d 700种 材质球_温度与耐磨钢球的关系
  5. python如何进行格式化输出变量_Python变量格式化输出实现原理解析
  6. react-移动端项目
  7. 第 2 章 Readme
  8. 基于typescript的rtsp客户端实现
  9. 工作职位推荐系统的算法与架构
  10. mysql函数之一:INSTR、LOCATE、POSITION VS LIKE
  11. 关于调用360极速浏览器 2345浏览器的方法
  12. 《知识产权法》雨课堂期末答案
  13. NTL密码算法开源库——大整数ZZ类(二)
  14. easyui treegrid php,jQuery中关于EasyUI的TreeGrid查询功能的实现
  15. 微信小程序 使用三元运算符动态渲染布局
  16. axios 框架的介绍和基本使用
  17. eureka 手动删除失效的服务
  18. threejs 绘制球体_Three.js基础探寻四——立方体、平面与球体
  19. 一月笔记-JAVA-超市管理系统
  20. Linux:ARM+lUbuntu16.04配置国内镜像源

热门文章

  1. java b2c_JAVA开源B2C系统
  2. 以太坊V神首次点评Facebook Libra
  3. Java基础(Static关键字)
  4. 峰哥读者从创业失败延毕一年,到考研985拿大厂offer,分享考研经历与经验
  5. PS 如何制作爆炸字
  6. edu-【Linux 与 Python编程2021】Linux知识训练,Linux之用户管理,Linux文件/目录管理
  7. 【51nod_3144】超级购物【期望】
  8. oracle数据库财务恢复,Oracle数据库备份与恢复特性浅谈【常用财务软件使用教程】...
  9. 活动模型与商品模型结合
  10. csgo下方各种数据都是意思_CSGO中的经典名梗众多,但是你知道它们的来历吗?...