博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
黑马程序员_Java基础枚举类型
阅读量:5208 次
发布时间:2019-06-14

本文共 1307 字,大约阅读时间需要 4 分钟。

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

枚举类型在张老师的交通灯的项目中发挥了他强大的作用,在银行调度系统中又再次出现,所有我想,如果不用枚举,问题将不可能那么简单就解决了,同时也更加深刻的意识到了枚举在java编程中的重要性,所以必须对枚举有个更深的了解,而不是仅仅停留在以前的枚举是一个常量,当第一个值时等于1的时候,后面的值会自动递增。

Java的枚举的每个元素都是一个对象,如

public enum WeekDay

{

SUN,MON,TUE,WED,THIRD,FRI,SAT

}

中SUN,MON等都是WeekDay的一个对象,既然是对象,WeekDay中的方法SUN都会有,如

  1. public enum WeekDay  
  2. {  
  3.     SUN,MON,TUE,WED,THI,FRI,SAT;  
  4.     public WeekDay nextDay()  
  5.     {  
  6.         switch(this)  
  7.         {  
  8.         case SUN:return MON;  
  9.         case MON:return TUE;  
  10.         case TUE:return WED;  
  11.         case WED:return THI;  
  12.         case THI:return FRI;  
  13.         case FRI:return SAT;  
  14.         case SAT:return SUN;  
  15.         }  
  16.         return null;  
  17.     }  
  18. }  

定义了nextday的方法,运行下面语句

  1. WeekDay a = WeekDay.FRI;  
  2. System.out.println(a.nextDay());   

                 枚举元素既然是枚举类的对象,那么如果在WeekDay 中定义有参的构造函数,传入String类型的参数,那么有SUN(“ID”)也就不奇怪了,这里也不演示了。但是有一点要主要,枚举类的构造方法要定义成私有的,那样,就说明该类不能在外部实例化对象,也就是你不能在WeekDay外在弄个枚举元素SUN1,这样是不行的。其实但我们在WeekDay中定义一个SUN时,其实就是相当于WeekDay  SUN=  new WeekDay(),这种只允许在其内部实例话对象的方法很容易让人想到单例,这样一想,如果枚举类型中只有一个枚举元素时,那就是单例。Java的枚举类型其实就是经过特殊处理的类。虽然如此,枚举的重要性不可低估,在后面的交通灯问题上,张老师就是用的枚举类型。

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

转载于:https://www.cnblogs.com/yun45/archive/2013/05/14/3077653.html

你可能感兴趣的文章
“ipconfig不是内部命令或外部命令”解决方法
查看>>
linux cron定时任务初级使用教程
查看>>
(C#控件)MessageBox
查看>>
Excel:写入Excel-单纯写入
查看>>
Tomcat详细用法学习(五)
查看>>
2017 icpc亚洲区域赛沈阳站
查看>>
UI基础--封装cell滑动时的动画
查看>>
2017.9.1 Java中的程序方法
查看>>
Django 框架 基础
查看>>
HDU3306 Another kind of Fibonacci 矩阵
查看>>
CSS笔记-文本缩略显示
查看>>
S7-200PLC间的PPI通信
查看>>
第三章家庭作业3.65
查看>>
javascript有哪些优秀的库,把你喜欢的都说出来吧
查看>>
Web后端 JAVA学习之路
查看>>
Arc076_E Connected?
查看>>
Java线程:新特征-锁(上)(转)
查看>>
MySQL Troubleshoting:Waiting on query cache mutex
查看>>
盒子模型&position定位
查看>>
docker容器里设置中文时区
查看>>