A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

【首先了解枚举, 枚举可以看做普通的类】
(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 这个枚举,直接可以调用)

13 个回复

正序浏览
我只是路过,然后打个酱油,在看下妹子
回复 使用道具 举报
学习一下
回复 使用道具 举报
枚举是JDK1.5的新特性吧?来学习学习
回复 使用道具 举报
你现在在自学基础课程?准备报哪一期的安卓啊
回复 使用道具 举报
Nick_KJ 发表于 2015-4-15 08:42
你的进度挺快的

我现在在做总结,进度快不起来啊
回复 使用道具 举报
确实枚举比较难理解,谢谢分享。
回复 使用道具 举报
大神,膜拜了{:3_64:}
回复 使用道具 举报
你的进度挺快的
回复 使用道具 举报
自己给自己支持一下:#
回复 使用道具 举报
学习一下
回复 使用道具 举报
顶一下吧~~
回复 使用道具 举报
不错,挺好的知识点。
回复 使用道具 举报
学到了:lol
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马