- public final static WeekDay MON=new WeekDay(){
- @Override
- public WeekDay nextDay() {
- // TODO Auto-generated method stub
- return SUN;
- }
-
- };
复制代码
上面这个内部类的引用为MON,调用它的nextDay方法返回的是个引用SUN。当我们在主函数调用的时候:
- WeekDay weekday = new WeekDay.MON;
- System.out.println(weekday.nextDay().toString());
复制代码
上面代码的输出是SUN。
现在weekday引用指向MON,所以调用weekday.nextDay()返回的是SUN的引用。之后再调用toString()方法,就相当于SUN.toString()。return this==SUN?"SUN":"MON";这里的this指的是所创建引用调用nextDay()方法后所返回的nextday的引用,现在创建的引用为MON,调用nextDay()返回SUN,所以判断它是不是SUN,是就返回SUN,不是就返回MON. |