黑马程序员技术交流社区

标题: 【分析篇】Java类中的枚举 [打印本页]

作者: yi岁⑨很乖❤    时间: 2015-4-13 20:20
标题: 【分析篇】Java类中的枚举
【首先了解枚举, 枚举可以看做普通的类】
(1) 这个类的构造方法是private。
(2) 这个类的每个元素分别用一个 public final static修饰。
(3) 这个类的每个元素都是这个枚举类的实例对象
(4) 枚举看做普通的类,所以可以有若干个方法或者抽象方法。

【在枚举中,可以使用抽象方法么?】
可以。因为枚举中可以看做普通的类,可以定义抽象方法。
但是这个抽象方法需要枚举中的每个元素实现这个抽象方法。
枚举的每个元素都是这个枚举的实例对象,所以必须实现抽象方法。

  1. enum People
  2. {
  3.         man {
  4.                 @Override
  5.                 public People getName() {
  6.                         return null;
  7.                 }
  8.         },
  9.         woman {
  10.                 @Override
  11.                 public People getName() {
  12.                         return null;
  13.                 }
  14.         };
  15.         public abstract People getName();
  16. }
复制代码

【枚举能继承类吗?】
如果这样定义一个枚举,让枚举继承String类,enum People extends String
编译器会报错,就是说你定义类已经继承了某个类。
由此可见,我们自己定义的枚举,已经继承了java.lang.Enum,并且Java不支持多重继承,
所以我们自己定义的枚举不能被继承,也不能继承类

【说说枚举和单例设计模式的区别】
1.  单例设计模式:
     (1) 构造函数私有化
     (2) 在本类中定义一个私有本类对象
     (3) 开放静态方法,让外部可以获得这个本类对象

2.  枚举:
     (1) 构造函数私有化(默认就有一个私有的空参数构造函数,不用自己定义)
     (2) 成员变量就是这个枚举的实例对象,当只有一个成员变量的时候,这个枚举就可以当做单例来用。
     (外部不需要new 这个枚举,直接可以调用)


作者: zeizeizeiaaa    时间: 2015-4-13 21:00
学到了:lol
作者: 燕赵之风    时间: 2015-4-13 21:29
不错,挺好的知识点。
作者: 俊勇    时间: 2015-4-13 21:58
顶一下吧~~
作者: 千玉屑    时间: 2015-4-13 22:00
学习一下
作者: yi岁⑨很乖❤    时间: 2015-4-15 00:43
自己给自己支持一下:#
作者: Nick_KJ    时间: 2015-4-15 08:42
你的进度挺快的
作者: minliang    时间: 2015-4-15 08:49
大神,膜拜了{:3_64:}
作者: 若果每天都努力    时间: 2015-4-15 09:16
确实枚举比较难理解,谢谢分享。
作者: yi岁⑨很乖❤    时间: 2015-4-15 11:00
Nick_KJ 发表于 2015-4-15 08:42
你的进度挺快的

我现在在做总结,进度快不起来啊
作者: 也许_还不懂    时间: 2015-4-25 22:19
你现在在自学基础课程?准备报哪一期的安卓啊
作者: 斷灬dian    时间: 2015-4-25 23:17
枚举是JDK1.5的新特性吧?来学习学习
作者: 柳叶飞刀    时间: 2015-5-20 09:04
学习一下
作者: 南朝小和尚    时间: 2015-5-20 21:52
我只是路过,然后打个酱油,在看下妹子




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2