黑马程序员技术交流社区

标题: 枚举的问题 [打印本页]

作者: 够了没有    时间: 2014-1-16 12:05
标题: 枚举的问题
本帖最后由 够了没有 于 2014-1-16 17:58 编辑

张老师讲的关于枚举的这段代码

public class EnumTest {

        public static void main(String[] args) {

                WeekDay weekDay0 = WeekDay.SUN;
                WeekDay weekDay1 = WeekDay.MON;
                System.out.println(weekDay0.toString());
                System.out.println(weekDay1.toString());

        public enum WeekDay{
                SUN(1),MON,TUE,WEN,THU,FRI,SAT;
                private WeekDay(){System.out.println("first");}
                private WeekDay(int day){System.out.println("second");}
        }
}

1.老师说枚举的每个元素SUN(1),MON,TUE,WEN,THU,FRI,SAT相当于WeekDay这个类的实例对象,
那么,我们在定义枚举的时候,可不可以用不是该类的实例对象的元素作为该枚举的元素呢?
比如定义一个确定的整数MAX = 127或者MIN = -128?
2.枚举的元素可以用小写字母表示吗?

作者: 黄晓鑫    时间: 2014-1-16 12:21
可以的 黑马程序员 但是定义的枚举是一个常量
作者: 几番意难相付    时间: 2014-1-16 12:35
一个枚举元素就是一个枚举的实例对象。
枚举中元素可以用小写字母命名。
如果要在枚举中定义确定的整数 可以用定义常量的方法。代码如
  1. package com.itheima;

  2. public enum test {
  3.         one,two,three;
  4.         public static final int MAX=127;
  5.         public static final int MIN=-128;
  6.        
  7.         public String toString(){
  8.                 if(this.equals(one)){
  9.                         return "1";
  10.                 }
  11.                 if(this.equals(two)){
  12.                         return "2";
  13.                 }
  14.                 if(this.equals(three)){
  15.                         return "3";
  16.                 }
  17.                 return null;
  18.         }
  19.        
  20.        
  21.        
  22.         public static void main(String[] args){
  23.                 System.out.println(test.MAX);
  24.                 System.out.println(test.MIN);
  25.                 System.out.println(test.one);
  26.         }
  27. }
复制代码





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