黑马程序员技术交流社区

标题: 求教枚举这个问题 [打印本页]

作者: 再见亦是泪    时间: 2013-2-24 17:37
标题: 求教枚举这个问题
我要列出星期几的下一天 用枚举实理 部分代码如下package cn.itcast.day1;

public abstract class WeekDay {
         private WeekDay(){}
         
        public final static WeekDay Sun=new WeekDay(){

                @Override
                 public WeekDay NextDay() {
                        
                        return Mon;
                 }
                 
        };
         public final static WeekDay Mon=new WeekDay(){

                @Override
                 public WeekDay NextDay() {
                        
                        return Tus;
                 }
                 
        };
         public final static WeekDay Tus=new WeekDay(){

                @Override
                 public WeekDay NextDay() {
                        
                        return Wen;
                 }
                 
        };
         public final static WeekDay Wen=new WeekDay(){

                @Override
                 public WeekDay NextDay() {
                        
                        return Thu;
                 }
                 
        };
         public final static WeekDay Thu=new WeekDay(){

                @Override
                 public WeekDay NextDay() {
                        
                        return Fri;
                 }
                 
        };
         public final static WeekDay Fri=new WeekDay(){

                @Override
                 public WeekDay NextDay() {
                        
                        return Sta;
                 }
                 
        };
         public final static WeekDay Sta=new WeekDay(){

                @Override
                 public WeekDay NextDay() {
                        
                        return Sun;
                 }
                 
        };
         public abstract WeekDay NextDay();
         
        public String toString(){
                 return this==Mon?"Sun":"Sta";
         }
}
请问toString里的方法应当怎么写
package cn.itcast.day1;

public class EnumDemo {

        /**
          * @param args
          */
         public static void main(String[] args) {

                WeekDay weekDay=WeekDay.Mon;
                 System.out.println(weekDay.NextDay());
         }

}
请知道的大侠们告知下,小弟万分感谢
作者: 谢波    时间: 2013-2-24 17:54
要不你给WeekDay加个name属性,
弄个带参数的构造函数,new对象的时候传入相应的name
toString里就可以写return name;
作者: 贾振凯    时间: 2013-2-24 17:56
本帖最后由 贾振凯 于 2013-2-24 17:58 编辑

用switch语句吧
switch(this){
       case Mon: return "Tus";
       ...............     
       case Sun: return "Mon";
}
作者: 王钊    时间: 2013-2-24 18:30
本帖最后由 王钊 于 2013-2-24 18:34 编辑

这样写:
public String toString()
{
      String str=null;
      switch(this)
      {
             case MON:
             str="星期一"
             break;
case TUS:
str="星期二"
break;
case WED:
str="星期三"
break;
case THU:
str="星期四"
break;
case FRI:
str="星期五"
break;
case SAT‘:
str="星期六"
break;
case SUN:
str="星期天"
break;
      }
   return str;
}




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