黑马程序员技术交流社区

标题: 枚举的问题 [打印本页]

作者: 刘孝泽    时间: 2014-7-8 15:01
标题: 枚举的问题
package jiaqiang;

public class Enum {
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                //拿到枚举
                WeekDay weekday = WeekDay.MON   ;
                //枚举中的方法
                System.out.println(weekday.name());//获取名字
                System.out.println(weekday.ordinal());//找到其位置
                System.out.println(weekday.valueOf("SUN"));//tostring方法将其变为weekday对象
                System.out.println(weekday.values().length);//变换为数组得到数组个数
               
        }
       

        //定义枚举weekday只包含这八个东西
        public enum WeekDay{
       
                SUN(1),MON(1),TUE,WED,THT,FRT,FRI,SAT;
                //创建空构造函数
                private WeekDay(){System.out.println("1");};
                //创建有参构造
                private WeekDay(int day){System.out.println("2");};
        }
        //定义交通灯枚举
        public enum TrafficLamp{
                //子类对象红灯
                RED(30){
                        public TrafficLamp nextLamp(){
                                return GREEN;
                        }
                },
                //子类对象green灯
                GREEN(45){
                        public TrafficLamp nextLamp(){
                                return YELLOW;
                        }
                },
                //子类对象黄灯
                YELLOW(5){
                        public TrafficLamp nextLamp(){
                                return RED;
                        }
                };
                //抽象方法
                public abstract TrafficLamp nextLamp();
                private int time;
                //有参构造
                private TrafficLamp(int time){this.time=time;}
                //空参构造
                private TrafficLamp(){}
        }
}
这里创建的枚举中的子类对象为什么不用new出来
作者: 签发    时间: 2014-7-8 15:24
枚举是值类型,不需要使用new。如果你要赋值给变量,只需要 enum f = MyFile;  即可。
作者: 签发    时间: 2014-7-8 15:26
使用new声明,会转换成引用类型,即object,打点就不出来东东。
作者: ahuhxl    时间: 2014-7-8 15:40
弱弱的问句:枚举在毕老师视频的第几天?为什么我一直都没看到?
作者: 杨殿生    时间: 2014-7-8 17:00
枚举中RED GREEN YELLOW 都是枚举的对象,用枚举的名.它 就能调用了,你说的new是创建枚举对象么?他应经在枚举类定义的时候创建完了,并且在外面是不可以new出枚举对象的
作者: 晴儿    时间: 2014-7-8 17:40
枚举是值类型,在内存中只分配一次内存,重复使用




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