黑马程序员技术交流社区
标题:
枚举的问题
[打印本页]
作者:
刘孝泽
时间:
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