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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public enum TrafficLamp{
RED(30){
public TrafficLamp nextLamp(){
   return 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;}
}
}
枚举如何创建自己的实例.在内存中如何实现的?
创建RED元素要用到GREEN,而创建GREEN要用到YELLOW,而创建YELLOW要用到RED,
一个元素没整完且要用到另外一个元素,内存中到底如何实现?

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

1 个回复

倒序浏览
创建枚举类型要使用enum关键字,隐含了所创建的类型都是java.lang.Enum类的子类,它是抽象类。其中,枚举类型符合通用模式
Class Enum<E extends Enum<E>>
,而
E
表示枚举类型的名称。枚举类型的每一个值都将映射到
protected Enum(String name, int ordinal)
构造函数中,在这里,每个值的名称都被转换成一个字符串,并且序数设置表示了此设置被创建的顺序。

public enum Size{
        SMALL,
        MEDIUM,
        LARGE;
}

实际上调用了三次构造函数:

new Enum<Size>("SMALL",0);
new Enum<Size>("MEDIUM",1);
new Enum<Size>("LARGE",2);

值的名字和顺序值可以分别通过name()/toString()、ordinal()获得。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马