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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马-王鹏 中级黑马   /  2013-5-7 15:32  /  1433 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黑马-王鹏 于 2013-5-7 17:30 编辑
  1. package cn.itcast.day1;

  2. public class EnumDemo {

  3.         /**
  4.          * @param args
  5.          */
  6.         public static void main(String[] args) {
  7.                 // TODO Auto-generated method stub
  8.       
  9.                  Weekday weekday = Weekday.SUN;
  10.                  System.out.println(weekday.nextDay().toSting());
  11.         }

  12. }
复制代码
  1. package cn.itcast.day1;

  2. public abstract class Weekday {
  3.         private Weekday(){}
  4.         public final static Weekday SUN = new Weekday(){

  5.                 @Override
  6.                 public Weekday nextDay() {
  7.                         // TODO Auto-generated method stub
  8.                         return MON;
  9.                 }
  10.         };
  11.         public final static Weekday MON = new Weekday(){

  12.                 @Override
  13.                 public Weekday nextDay() {
  14.                         // TODO Auto-generated method stub
  15.                         return SUN;
  16.                 }
  17.                
  18.         };
  19.         public abstract Weekday nextDay();
  20.         /*{
  21.                 if(this == SUN)
  22.                         return SUN;
  23.                 else {
  24.                         return MON;}
  25.         }*/
  26.     public String toSting(){
  27.             return this == SUN?"MON":"SUN";
  28.     }
  29. }
复制代码
为什么我运行结果是SUN?按照视频里张老师运行的应该是MON才对啊

3 个回复

倒序浏览
public final static Weekday MON = new Weekday(){

                @Override
                public Weekday nextDay() {
                        // TODO Auto-generated method stub
                        return SUN;
                }
               
        };
问题出在这儿,我发现你重写了nextDay() 这个方法好几次
你new的时候是从这儿的,所以返回SUN
回复 使用道具 举报
本帖最后由 孙金鑫 于 2013-5-7 17:11 编辑

  1. <OL>
  2. <LI>Weekday weekday = Weekday.SUN;

  3.                  System.out.println(weekday.nextDay());
  4. //调用nextDay()就可以了



  5. public String toString(){
  6. </LI>
  7. <LI>            return this == SUN?"MON":"SUN";
  8. </LI></OL>//哥们你这里少写了一个r,覆盖的方法是toString(),不是toSting()
复制代码
回复 使用道具 举报
孙金鑫 发表于 2013-5-7 16:56

对啊,太粗心了,还有就是return this == SUN?"SUN":"MON";中"SUN"和"MON"写反了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马