黑马程序员技术交流社区
标题:
内部类的疑惑
[打印本页]
作者:
侠客梦的懒猫
时间:
2013-12-8 22:01
标题:
内部类的疑惑
现在正在看张老师的java基础加强,对于下面讲的没有听太明白
public final static WeekDay SUN=new WeekDay(){
@Override
public String nextDay() {
// TODO Auto-generated method stub
{
if(this==SUN)
{
return "MON";
}
else
{
return "SUN";
}
}
}};
为啥是内部类?
class china
{
Shanghai sh;
china()
{
sh=new hanghai();
}
}
这个我理解,但是对于第一个程序,表示不明白,还望大神们帮忙!!
作者:
§傻、才乖
时间:
2013-12-8 22:23
你看张老师的视频,上边那段代码演示的是枚举功能的类。是经过优化的,
SUN是WeekDay的一个对象引用,而nextDay方法之前是在WeekDay类中实现的,
而枚举是不能在外部new对象的,所以只能在内部new对象,
在WeekDay中定义抽象方法,在new对象时覆写nextDay方法,
这样这个内部类就产生了
以上这段完整代码应该是这样
public abstract class WeekDay1 {
private WeekDay1(){}
public static final WeekDay1 SUN=new WeekDay1(){
@Override
public WeekDay1 nextDay() {
// TODO Auto-generated method stub
return MON;
}
};
public static final WeekDay1 MON=new WeekDay1(){
@Override
public WeekDay1 nextDay() {
// TODO Auto-generated method stub
return SUN;
}
};
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2