黑马程序员技术交流社区
标题:
关于枚举
[打印本页]
作者:
乔九
时间:
2013-2-21 20:05
标题:
关于枚举
package cn.itcast.day1;
public class EnumTest {
/**
* @param args
*/
public static void main(String[] args) {
WeekDay weekDay=WeekDay.MON;
System.out.println(weekDay.nextDay());
}
}
public abstract class WeekDay {
private WeekDay(){}
public static final WeekDay MON=new WeekDay(){
此句如何解释
@Override
public WeekDay nextDay() {
// TODO Auto-generated method stub
return SUN;
}
};
public static final WeekDay SUN=new WeekDay(){
@Override
public WeekDay nextDay() {
// TODO Auto-generated method stub
return MON;
}
};
public abstract WeekDay nextDay();
{
/* if(this==SUN)
return MON;
else
return SUN;*/
}
public String toString()
{
return this==SUN? "SUN":"MON";
}
}
作者:
黑马刘杰
时间:
2013-2-21 20:27
这是一个匿名内部类
匿名内部类:
1)就是内部类的简写格式。
2)定义内部类的前提:内部类必须是继承一个类,或者实现接口。
3)匿名内部类的格式:new 父类或接口(){定义子类内容}。
4)其实,匿名内部类就是一个匿名子类对象。就是带内容的对象。
匿名内部类有什么作用呢?
类的装载需要消耗系统资源,使用匿名内部类可以节约系统资源,而且,匿名内部类增强了封装。
作者:
顾传文
时间:
2013-2-21 20:41
1.创建一个类实现抽象类WeekDay 。
2.new 实现类抽象类WeekDay的实例对象。
作者:
胥文
时间:
2013-2-21 21:12
个人理解:首先这不是一个枚举,该类没有用enum修饰。
而该类就好比给WeekDay定义了两个子类,Mon和Sun,在创建这两个子类的时候通过匿名内部类复写nextDay()方法
感觉这像一个自定义的枚举
我写了一个常规的枚举
public enum WeekDay {
SUN()
{
public WeekDay nextDay()
{
return MON;
}
},
MON()
{
public WeekDay nextDay()
{
return TUE;
}
},
TUE()
{
public WeekDay nextDay()
{
return WEN;
}
},
WEN()
{
public WeekDay nextDay()
{
return THU;
}
},
THU()
{
public WeekDay nextDay()
{
return FRI;
}
},
FRI()
{
public WeekDay nextDay()
{
return SAT;
}
},
SAT()
{
public WeekDay nextDay()
{
return SUN;
}
};
private WeekDay(){}
public abstract WeekDay nextDay();
}
public static void main(String[] args) {
WeekDay weekday = WeekDay.SAT;
System.out.println(weekday.nextDay());
}
作者:
黑马-王言龙
时间:
2013-2-21 22:02
WeekDay MON=new WeekDay(){...};
=右边,是一个匿名内部类对象。格式:new 父类/接口{实现方法};
说明这个对象继承了WeekDay类
左边简单了,父类引用指向子类对象。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2