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

黑马程序员__用普通类模拟枚举的实现原理

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

枚举就是让某个变量的取值只能为若干个固定值中的一个,否则编译就会出错。

用普通类实现枚举功能:

1、私有的构造方法

2、每个元素分别用一个公有的静态成员变量表示。

3、可以有若干个公有方法或抽象方法。

定义一个WeekDay类:

 1 public class WeekDay {
 2     private WeekDay() {
 3     }
 4 
 5     public final static WeekDay Mon = new WeekDay();
 6     public final static WeekDay Tue = new WeekDay();
 7     public final static WeekDay Wed = new WeekDay();
 8     public final static WeekDay Thu = new WeekDay();
 9     public final static WeekDay Fri = new WeekDay();
10 
11     public WeekDay nextDay() {
12 
13         if (this == Mon) {
14             return Tue;
15         } else if (this == Tue) {
16             return Wed;
17         } else if (this == Wed) {
18             return Thu;
19         } else {
20             return Fri;
21         }
22         
23 
24     }
25     public String toString(){
26         if(this==Mon) return "星期一";
27         if(this==Tue) return "星期二";
28         if(this==Wed) return "星期三";
29         if(this==Thu) return "星期四";
30         if(this==Fri) return "星期五";
31         return "不在范围内";
32     }
33     
34 }

4.产生一个测试类:

1 public class enumTest {
2     public static void main(String[] args) {
3         WeekDay weekDay = WeekDay.Mon;
4         System.out.println(weekDay.nextDay());
5     }
6 
7 }

 

 

转载于:https://www.cnblogs.com/xtfgq/archive/2013/04/11/3015144.html

相关文章:

  • 10.3生成器yield\send
  • Web Service中java与.net通信
  • 1050. [HAOI2006]旅行【并查集+枚举】
  • HDU-1421
  • 2251. [2010Beijing Wc]外星联络【后缀数组】
  • Tortoisesvn,鼠标右键菜单中找不到“检出”的处理方法
  • 麻烦大家反馈一下昨天的网站访问速度
  • 网关 Spring-Cloud-Gateway 源码解析 —— 网关初始化
  • shell中quotes的不同作用
  • C/C++入门必备
  • SqlServer在表中插入数据时出现主键冲突问题解决方式
  • 1、告别windows,决定
  • 深入浅出Power Shell——cmd调用PowerShell脚本
  • 专访黄隽实:Stay hungry, Stay foolish!
  • golang中应该怎么使用socket?
  • 【5+】跨webview多页面 触发事件(二)
  • 【附node操作实例】redis简明入门系列—字符串类型
  • Bytom交易说明(账户管理模式)
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • CentOS 7 防火墙操作
  • EventListener原理
  • extjs4学习之配置
  • Git同步原始仓库到Fork仓库中
  • HomeBrew常规使用教程
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • 初探 Vue 生命周期和钩子函数
  • 从tcpdump抓包看TCP/IP协议
  • 对象引论
  • 记录:CentOS7.2配置LNMP环境记录
  • 记一次用 NodeJs 实现模拟登录的思路
  • 解析带emoji和链接的聊天系统消息
  • 离散点最小(凸)包围边界查找
  • 视频flv转mp4最快的几种方法(就是不用格式工厂)
  • 我有几个粽子,和一个故事
  • 新版博客前端前瞻
  • Java数据解析之JSON
  • ​ ​Redis(五)主从复制:主从模式介绍、配置、拓扑(一主一从结构、一主多从结构、树形主从结构)、原理(复制过程、​​​​​​​数据同步psync)、总结
  • #QT(一种朴素的计算器实现方法)
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (+4)2.2UML建模图
  • (09)Hive——CTE 公共表达式
  • (5)STL算法之复制
  • (7)STL算法之交换赋值
  • (八十八)VFL语言初步 - 实现布局
  • (仿QQ聊天消息列表加载)wp7 listbox 列表项逐一加载的一种实现方式,以及加入渐显动画...
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (十六)一篇文章学会Java的常用API
  • (学习日记)2024.01.19
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • (转)项目管理杂谈-我所期望的新人
  • .NET Core引入性能分析引导优化
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .Net 中Partitioner static与dynamic的性能对比
  • [22]. 括号生成
  • [ACTF2020 新生赛]Include