黑马程序员技术交流社区

标题: 入门考试中的“枚举”!!需要的进来看啊 [打印本页]

作者: Captain_Jack_Sp    时间: 2014-10-9 19:49
标题: 入门考试中的“枚举”!!需要的进来看啊
JDK1.5 之前,我们定义常量都是: publicstaticfianl.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。
用法一:常量
  1. public enum Color{
  2. RED,GREEN,BLANK,YEELOW
  3. }<div class="blockcode"><blockquote><p>用法二</p><p>en<div class="blockcode"><blockquote>用法三:向枚举中添加新方法
  4. public enum Color {
  5.         RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
  6.         // 成员变量
  7.         private String name;
  8.         private int index;
  9.         // 构造方法
  10.         private Color(String name, int index) {
  11.                 this.name = name;
  12.                 this.index = index;
  13.         }
  14.         // 普通方法
  15.         public static String getName(int index) {
  16.                 for (Color c : Color.values()) {
  17.                         if (c.getIndex() == index) {
  18.                                 return c.name;
  19.                         }
  20.                 }
  21.                 return null;
  22.         }
  23.         // get set 方法
  24.         public String getName() {
  25.                 return name;
  26.         }
  27.         public void setName(String name) {
  28.                 this.name = name;
  29.         }
  30.         public int getIndex() {
  31.                 return index;
  32.         }
  33.         public void setIndex(int index) {
  34.                 this.index = index;
  35.         }
  36. }
复制代码

um Signal {
        GREEN, YELLOW, RED
}
public class TrafficLight {
        Signal color = Signal.RED;
        public void change() {
                switch (color) {
                case RED:
                        color = Signal.GREEN;
                        break;
                case YELLOW:
                        color = Signal.RED;
                        break;
                case GREEN
  1. 用法四:覆盖枚举的方法
  2. public enum Color {
  3.         RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
  4.         // 成员变量
  5.         private String name;
  6.         private int index;
  7.         // 构造方法
  8.         private Color(String name, int index) {
  9.                 this.name = name;
  10.                 this.index = index;
  11.         }
  12.         //覆盖方法
  13.         @Override
  14.         public String toString() {
  15.                 return this.index+"_"+t<div class="blockcode"><blockquote>用法五:实现接口
  16. public interface Behaviour {
  17.         void print();
  18.         String getInfo();
  19. }
  20. public enum Color implements Behaviour{
  21.         RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);
  22.         // 成员变量
  23.         private String name;
  24.         private int index;
  25.         // 构造方法
  26.         private Color(String name, int index) {
  27.                 this.name = name;
  28.                 this.index = index;
  29.         }
  30. //接口方法
  31.         @Override
  32.         public String getInfo() {
  33.                 return this.name;
  34.         }
  35.         //接口方法
  36.         @Override
  37.         public void print() {
  38.                 System.out.println(this.index+":"+this.name);
  39.         }
  40. }
复制代码

his.name;
        }
}
:
                        color = Signal.YELLOW;
                        break;
                }
        }
}








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