黑马程序员技术交流社区
标题:
枚举不大熟悉的说
[打印本页]
作者:
黑马杨锦喜
时间:
2012-9-25 21:12
标题:
枚举不大熟悉的说
多谢各位的鼎力支持与帮助,此问题的回帖在某个程度上解决了我的问题,如果以后遇到新的此类问题,我会继续加强的。
import org.junit.Test;
public class DemoWeek {
@Test
public void test(){
print(WeekDay.THU);
}
public void print(WeekDay w){
String value=w.localValue();
System.out.println(value);
String str=w.getValue();
System.out.println("参数:"+str);
}
}
enum WeekDay{
MON("mon"){
public String localValue(){
return "星期一";
}
}
,TUE("tue"){
public String localValue(){
return "星期二";
}
}
,WED("wed"){
public String localValue(){
return "星期三";
}
}
,THU("thu"){
public String localValue(){
return "星期四";
}
};
private String value;
private WeekDay(String value){
this.value=value;
}
public String getValue(){
return this.value;
}
public abstract String localValue();
}
我想问的是最后这几句,具体是怎么实现我们所需的功能的?对枚举不大熟悉的说,很困惑这种形式?这难道是构造函数或者方法么?
/*
private String value;
private WeekDay(String value){
this.value=value;
}
public String getValue(){
return this.value;
}
*/
作者:
黑马张旭明
时间:
2012-9-25 21:45
private String value;
private WeekDay(String value){
this.value=value;
}
public String getValue(){
return this.value;
}
enum WeekDay是一个类,上面这些都是类的成员,
private String value;
是成员变量,
private WeekDay(String value)
和
public String getValue()
是这个类的成员函数,其中前一个是类构造函数,而前面那些MON,TUE,WED等是这个类的一个静态常量,指向这个类的一个对象,可以说这些就是类的对象。后面不难解释MON("mon")后面有括号就是调用了
private WeekDay(String value){ this.value=value;}
将"mon"赋值给成员变量value,注意的是这些MON,TUE,WED每个都是一个WeekDay对象,都有自己的value值和构造方法等成员。
public void test(){
print(WeekDay.THU);
//参数是成员变量THU(THU是WeekDay的一个对象)
}
public void print(WeekDay w){
String value=w.localValue();
//显然这里调用了THU的localValue()方法返回的是"星期四"。
System.out.println(value);
String str=w.getValue();
//这里调用的是THU的getValue()方法返回的是"thu"。
System.out.println("参数:"+str);
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2