黑马程序员技术交流社区
标题:
关于使用内部类代替ifelse
[打印本页]
作者:
Teemo_Mann
时间:
2014-4-16 23:12
标题:
关于使用内部类代替ifelse
在张老师的视频中,讲到枚举时举到这么一个例子
关于用一个普通类表示一个星期的枚举
class WeekDay{
private WeekDay(){}
public final static WeekDay SUN = new WeekDay();
public final static WeekDay MON = new WeekDay();
public WeekDay nextDay(){
if(this == SUN){
return MON;
}
return SUN;
}
}
复制代码
改用抽象类和匿名函数
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 else就进行修改这个匿名函数,这样写我觉得和原先的差别没有多大,如果单单只是为了方便的话我觉得两段代码写起来还要if else比较方便,是不是这里面还有别的玄机呢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2