黑马程序员技术交流社区

标题: 枚举类中的自定义构造方法传入的变量怎么用? [打印本页]

作者: 黑马李超    时间: 2013-3-12 16:45
标题: 枚举类中的自定义构造方法传入的变量怎么用?
本帖最后由 黑马李超 于 2013-3-12 22:40 编辑
  1. public enum TrafficLamp{
  2.                 RED(30){
  3.                         public TrafficLamp changeLamp(){
  4.                                 return GREEN;
  5.                         }
  6.                 },
  7.                 GREEN(45){
  8.                         public TrafficLamp changeLamp(){
  9.                                 return YELLOW;
  10.                         }
  11.                 },
  12.                 YELLOW(3){
  13.                         public TrafficLamp changeLamp(){
  14.                                 return RED;
  15.                         }
  16.                 };
  17.                 public abstract TrafficLamp changeLamp();
  18.                 private int time;
  19.                 private TrafficLamp(int time){
  20.                         this.time = time;
  21.                 }
  22.         }
复制代码
张老师说可以定义一个构造方法:
private TrafficLamp(int time)
{
this.time = time;
}
这个time在枚举值的内部类中调用,会显示无法从静态上下文中引用非静态变量。
不知道这个time怎么使用?
作者: 马甲大王    时间: 2013-3-12 18:24
你可以增加一个抽象seter,geter方法,然内部类实现就能获取了。
作者: 谢洋    时间: 2013-3-12 19:45
这个time在枚举值的内部类中调用,会显示无法从静态上下文中引用非静态变量。
不知道这个time怎么使用?
因为枚兴的元素是静态的,而time是非静态的,如要用,则同上面所所的那样‘
然后调用格式如:TraficLang.RED.geter();




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