黑马程序员技术交流社区

标题: 这样为什么会报错 枚举学的太烂 [打印本页]

作者: dsh    时间: 2014-10-4 14:21
标题: 这样为什么会报错 枚举学的太烂
package com.heima;

/*
* 1、 自定义枚举 Week 用于表示星期,Mon,Tue,Wed...
* 要求每个枚举值都有toLocaleString 方法,用于获得枚举所表示的星期的中文格式 星期一、星期二、星期三...
* Sunday           Sun         星期日
* Monday           Mon         星期一
* Tuesday          Tue         星期二
* Wednesday        Wed         星期三
* Thursday         Thu         星期四  
* Friday           Fri         星期五
* Saturday         Sat         星期六
*/
public class Test01 {

        public static void main(String[] args) {

           Week day =Week.FRI;
      
       System.out.println(day.name());//FRI
      
       System.out.println(Week.valueOf("SUN").toLocaleString());//星期日
        }

}

enum Week {
    MON{
        public String toLocaleString(){
            return "星期一";
        }
    },
    TUES{
        public String toLocaleString(){
            return "星期二";
        }
    },
    WEB{
        public String toLocaleString(){
            return "星期三";
        }

    },
    THUR{
        public String toLocaleString(){
            return "星期四";
        }

    },
    FRI{
        public String toLocaleString(){
            return "星期五";
        }

    },
    SAT{
        public String toLocaleString(){
            return "星期六";
        }

    },
    SUN{
        public String toLocaleString(){
            return "星期日";
        }

    };
   
   
        private String value;
   
    private Week(String value) {
                this.value = value;
        }
        public String getValue() {
     return value;
     }
    public abstract String toLocaleString();
}
作者: JerryJava    时间: 2014-10-4 14:32
你定义了一个有参的构造函数,则默认的空参构造函数失效。
需要在初始化时传入一个String参数。

MON("1"){
        public String toLocaleString(){
            return "星期一";
        }

希望能够帮到你。
作者: dsh    时间: 2014-10-4 14:56
JerryJava 发表于 2014-10-4 14:32
你定义了一个有参的构造函数,则默认的空参构造函数失效。
需要在初始化时传入一个String参数。

方不方便  把枚举的知识讲详细点   我顺便可以学习学习
作者: JerryJava    时间: 2014-10-4 15:03
dsh 发表于 2014-10-4 14:56
方不方便  把枚举的知识讲详细点   我顺便可以学习学习

baidu 或者论坛搜索下。
作者: dsh    时间: 2014-10-4 15:04
JerryJava 发表于 2014-10-4 15:03
baidu 或者论坛搜索下。

   Week day =Week("Tuesday");
作者: dsh    时间: 2014-10-4 15:08
JerryJava 发表于 2014-10-4 15:03
baidu 或者论坛搜索下。

为什么这样用就会出错  是不是私有了

作者: 笑脸迷人    时间: 2014-10-4 15:45
枚举类Week中加入无参的构造方法
或者每个枚举实例后面加入参数就好比如

  1. MON("TUES"){
  2.         public String toLocaleString(){
  3.             return "星期一";
  4.         }
  5.     }
复制代码





作者: dsh    时间: 2014-10-4 22:02
笑脸迷人 发表于 2014-10-4 15:45
枚举类Week中加入无参的构造方法
或者每个枚举实例后面加入参数就好比如

如果写成这样  该怎么用这个枚举变量  方便吧 无参和有参的用法都说说  这里有很多不懂的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2