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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赖龙威 中级黑马   /  2013-10-17 21:59  /  1451 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

今天在看张老师的交通灯管理系统的时候,他设计Lamp这个枚举的时候,构造函数用的是String,老师说,这是为了避免使用为定义的变量。有没有其他方法?我记得学C++有这个功能
  1. package cn.itcast.traffic;
  2. public enum Lamp {
  3.         S2N("N2S","S2W",false),S2W("N2E","E2W",false),E2W("W2E","N2S",false),E2S("W2N","S2N",false),
  4.         N2S(null,null,false),N2E(null,null,false),W2E(null,null,false),W2N(null,null,false),
  5.         S2E(null,null,true),E2N(null,null,true),N2W(null,null,true),W2S(null,null,true);
  6.         private String opposite;
  7.         private String next;
  8.         private boolean lighted;
  9.        
  10.         private Lamp(String opposite, String next, boolean lighted) {
  11.                 this.opposite = opposite;
  12.                 this.next = next;
  13.                 this.lighted = lighted;
  14.         }

  15.         public boolean isLighted() {
  16.                 return lighted;
  17.         }
  18.        
  19.         public void light() {
  20.                 lighted = true;
  21.                 if (opposite != null) {
  22.                         Lamp.valueOf(opposite).light();
  23.                 }
  24.         }
  25.        
  26.         public Lamp shutdown() {
  27.                 lighted = false;
  28.                 Lamp lamp = null;
  29.                 if (opposite != null)
  30.                         Lamp.valueOf(opposite).shutdown();
  31.                 if (next != null) {
  32.                         lamp = Lamp.valueOf(next);
  33.                         lamp.light();
  34.                 }
  35.                 return lamp;
  36.                
  37.         }
  38. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
周志龙 + 1 触类旁通.赞一个

查看全部评分

2 个回复

倒序浏览
道友,
C++有吗?C++的枚举更简单,更固定。
没声明的东西,能先用?
反正我只记得的,用前先声明,
张老师这方法,已经够巧秒了
回复 使用道具 举报
To 金牌黑马 2013-10-20 19:05:47
藤椅
楼主你好,如果问题已解决请将帖子状态修改为提问结束,如果未解决请继续提问,谢谢合作
如果不会修改请看解释帖:http://bbs.itheima.com/thread-89313-1-1.html
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马