黑马程序员技术交流社区
标题:
关于枚举问题
[打印本页]
作者:
黑马-王鹏
时间:
2013-5-7 15:32
标题:
关于枚举问题
本帖最后由 黑马-王鹏 于 2013-5-7 17:30 编辑
package cn.itcast.day1;
public class EnumDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Weekday weekday = Weekday.SUN;
System.out.println(weekday.nextDay().toSting());
}
}
复制代码
package cn.itcast.day1;
public abstract class Weekday {
private Weekday(){}
public final static Weekday SUN = new Weekday(){
@Override
public Weekday nextDay() {
// TODO Auto-generated method stub
return MON;
}
};
public final static Weekday MON = new Weekday(){
@Override
public Weekday nextDay() {
// TODO Auto-generated method stub
return SUN;
}
};
public abstract Weekday nextDay();
/*{
if(this == SUN)
return SUN;
else {
return MON;}
}*/
public String toSting(){
return this == SUN?"MON":"SUN";
}
}
复制代码
为什么我运行结果是SUN?按照视频里张老师运行的应该是MON才对啊
。
作者:
一直在路上
时间:
2013-5-7 16:05
public final static Weekday MON = new Weekday(){
@Override
public Weekday nextDay() {
// TODO Auto-generated method stub
return SUN;
}
};
问题出在这儿,我发现你重写了nextDay() 这个方法好几次
你new的时候是从这儿的,所以返回SUN
作者:
孙金鑫
时间:
2013-5-7 16:56
本帖最后由 孙金鑫 于 2013-5-7 17:11 编辑
<OL>
<LI>Weekday weekday = Weekday.SUN;
System.out.println(weekday.nextDay());
//调用nextDay()就可以了
public String toString(){
</LI>
<LI> return this == SUN?"MON":"SUN";
</LI></OL>//哥们你这里少写了一个r,覆盖的方法是toString(),不是toSting()
复制代码
作者:
黑马-王鹏
时间:
2013-5-7 17:29
孙金鑫 发表于 2013-5-7 16:56
对啊,太粗心了,还有就是return this == SUN?"SUN":"MON";中"SUN"和"MON"写反了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2