A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马杨锦喜 中级黑马   /  2012-9-25 21:12  /  1287 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

多谢各位的鼎力支持与帮助,此问题的回帖在某个程度上解决了我的问题,如果以后遇到新的此类问题,我会继续加强的。

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;
        }
*/

评分

参与人数 1技术分 +1 收起 理由
王德升 + 1 赞一个!

查看全部评分

1 个回复

倒序浏览
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);


评分

参与人数 1技术分 +1 收起 理由
王德升 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马