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

© 刘晓康 中级黑马   /  2012-4-4 21:41  /  1870 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

枚举类型的使用场合有哪些,视频为什么说它过时了呢

5 个回复

正序浏览
java中枚举的特点,和普通类的去区别。
1.它不能有public的构造函数,这样做可以保证客户代码没有办法新建一个enum的实例;即构造函数私有化

2.所有枚举值都是 public , static , final 的。
(注意:这一点只是针对于枚举值,我们可以和在普通类里面定义变量一样定义其它任何类型的非枚举变量,这些变量可以用任何你想用的修饰符。)

3.Enum默认实现了java.lang.Comparable接口;

4.Enum重载了toString方法,因此我们如果调用Color.Blue.toString()默认返回字符串”Blue”;

5.Enum提供了一个valueOf方法,它和toString方法是相对应的。调用valueOf(“Blue”)将返回Color.Blue
因此在重写toString方法的时候就要注意到这一点,一般来说应该相对应地重写valueOf方法;

6.Enum还提供了values方法,该方法可以方便的遍历所有的枚举值;

7.Enum还有一个oridinal的方法,该方法返回枚举值在枚举类中的顺序,这个顺序根据枚举值声明的顺序而定,这里Color.Red.ordinal()返回0。

回复 使用道具 举报
枚举类型用于指定种类的对象数目已经确定,而且只作标志使用的。
即:对象能够表达一定意义,却只是一个原子结构,没有更多属性,这样的对象在java中可以提高循环条件的判断效率,可用作为switch的条件。
假设武器的类型只有以下8种,则可定义:

enum 兵器 {刀,枪,剑,戟,斧,钺,钩,叉}

定义以及使用方法:
public class Test {

        public static void main(String[] args) {
               
                兵器 enu = 兵器.剑;
               
                switch(enu){
                        case 刀 :
                        case 枪 :
                        case 剑 :
                        case 戟 :
                        case 斧 :
                        case 钺 :
                        case 钩 :
                        case 叉 :
                }
               
        }

}

事实上:枚举中的所有属性均为公有、静态而且为Enum类型的对象,枚举类型在创建完成的时候就把所有可能产生的该类型对象全部列了出来。
回复 使用道具 举报
  当你定义的变量  是大家所共识时 且  是唯一的时候 就可以定义枚举类了      
  比如    年中的月份   12个月   值是不变的  定义的变量 就可以用枚举类型
        星期 的天数   交通红绿黄灯    一天中的12个小时  等等很多都可以用   主要看实际需求   
回复 使用道具 举报
张老师有说过, 例如 交通指示灯  ,只允许有 红黄绿,做出了限定, 星期只有星期一道星期天 ,没有星期八啊
回复 使用道具 举报
张老师有说过, 例如 交通指示灯  ,只允许有 红黄绿,做出了限定, 星期只有星期一道星期天 ,没有星期八啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马