当前位置: 首页 > news >正文

java学习之枚举

目录

一、枚举引出

二、分析问题

三、 解决方案-枚举

四、枚举的二种实现方式

五、应用案例

六、小结


一、枚举引出

 

package enum_;public class Enumeration01 {public static void main(String[] args) {Season spring = new Season("春天", "温暖");Season winter = new Season("冬天", "寒冷");Season summer = new Season("夏天", "炎热");Season autumn = new Season("秋天", "凉爽");autumn.setName("xxx");autumn.setDesc("非常热");//出现的问题:对于季节而言,它的对象(具体值)是固定的,不会有更多//按照目前的设计思路,不能体现季节只有四个固定的对象//因此可以使用枚举类来解决这个问题// 枚: 一个一个   举:  例举,即把具体的对象一个一个例举出来的类称为枚举类Season other = new Season("白天", "~~~");}
}class Season{private String name;private String desc;//描述public Season(String name, String desc) {this.name = name;this.desc = desc;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getDesc() {return desc;}public void setDesc(String desc) {this.desc = desc;}}

二、分析问题

1) 季节的值是有限的几个值(spring, summer, autumn, winter)
2) 只读, 不需要修改。


三、 解决方案-枚举


1) 枚举对应英文(enumeration, 简写 enum)
2) 枚举是一组常量的集合。
3) 可以这里理解: 枚举属于一种特殊的类, 里面只包含一组有限的特定的对象。


四、枚举的二种实现方式


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

五、应用案例

final修饰的变量量全都大写 

 

package enum_;public class Enumeration02 {public static void main(String[] args) {System.out.println(Season.SPRING);}
}
class Season{private String name;private String desc;//描述//定义了四个对象//public static final修饰,因为是final修饰,所以必须是大写public static final  Season SPRING =  new Season("春天", "温暖");public static final  Season WINTER =  new Season("冬天", "寒冷");public static final  Season SUMMER = new Season("夏天", "炎热");public static final  Season AUTUMN = new Season("秋天", "凉爽");//1. 将构造器私有化,目的防止 直接 new//2. 去掉 setXxx 方法, 防止属性被修改(只能读,不能修改)//3.在Season 内部直接创建固定的对象实例private Season(String name, String desc) {this.name = name;this.desc = desc;}public String getName() {return name;}public String getDesc() {return desc;}@Overridepublic String toString() {return "Season{" +"name='" + name + '\'' +", desc='" + desc + '\'' +'}';}
}

六、小结

1) 构造器私有化
2) 本类内部创建一组对象[四个 春夏秋冬]
3) 对外暴露对象(通过为对象添加 public final static 修饰符)
4) 可以提供 get 方法, 但是不要提供 set
 

http://www.lryc.cn/news/63342.html

相关文章:

  • IPsec中IKE与ISAKMP过程分析(主模式-消息2)
  • KDZR-10A三相直流电阻测试仪
  • C语言入门篇——指针篇
  • Python小姿势 - Python学习笔记:如何使用Python创建一个简单的计算器
  • 庖丁解牛 - FLAME: Taming Backdoors in Federated Learning
  • C++设计模式20:状态模式
  • Embarcadero Delphi 11 和 C++Builder 11 免费社区版发布!
  • JSP+Struct+MySql基于BBS管理系统设计与实现(源代码+论文+中英资料+开题报告+答辩PPT)
  • 800字带你弄懂Http请求和响应
  • 【Java笔试强训 6】
  • 2023年最新5A景区有多少个?Python可视化告诉你
  • C++中的list容器
  • Apache Hudi初探(二)(与spark的结合)
  • 颠覆世界的“数字孪生”到底是什么?这篇文章带你搞懂全部内涵!
  • Vector底层结构和源码分析
  • 计算卸载论文阅读01-理论梳理
  • Windows 11 本地 php 开发环境搭建:PHP + Apache + MySQL +VSCode 安装和环境配置
  • 15个使用率超高的Python库,下载量均过亿
  • 所有知识付费都可以用 ChatGPT 再割一次?
  • Python中“is”和“==”的区别(避坑)
  • 20230426----重返学习-vue-router路由
  • Java字节码指令
  • Vue3之setup参数介绍
  • ESET NOD32 互联网安全软件和防毒软件 -简单,可靠的防护。
  • 试试这几个冷门但好用的软件吧
  • 【云原生】k8s NetworkPolicy 网络策略是怎么样的
  • 手把手教你用几行代码给winform多个控件(数量无上限)赋值
  • 回炉重造十一------ansible批量安装服务
  • 系统集成项目管理工程师 笔记(第20章:知识产权管理、第21章:法律法规和标准规范)
  • Channel-wise Knowledge Distillation for Dense Prediction(ICCV 2021)原理与代码解析