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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 叶征东 中级黑马   /  2012-9-13 15:52  /  1209 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 叶征东 于 2012-9-13 16:05 编辑

public class EnumTest {

       public static void main(String[] args) {
             WeekDay weekday2 = WeekDay.MON;
       }
       public enum WeekDay{
             SUN(),MON(1),TUE(2),WED(2),THI(1),FRI,SAT;
              private WeekDay(){
                     System.out.println("first");
              }
              private WeekDay(int day1,int day2){
                    System.out.println("third");
              }
              private WeekDay(int day){
                   System.out.println("second");
             }
       }
}
输出结果如下:
first
second
second
second      //这两个怎么是“second”?不是为“third”么?      如果我想这两个“second”变成“third”,应该怎么做?  请指点下,谢谢!

second
first
first

3 个回复

倒序浏览
输出结果如下:
first
second
second
second      //这两个怎么是“second”?不是为“third”么?      如果我想这两个“second”变成“third”,应该怎么做?  请指点下,谢谢!
second           因为你TUE(2)和WED(2)调用的是只传一个参数的构造函数,只要将参数改为两个int就可以输出third
                                    例如改成TUE(2,2)和WED(2,2)即可

first
first
回复 使用道具 举报
李菁 发表于 2012-9-13 16:00
输出结果如下:
first
second

谢谢,我理解错了,TUE(2),我把这个2 理解成指向有2个参数的构造方法,张老师的话有点听不懂,呵
回复 使用道具 举报
public class EnumTest {

       public static void main(String[] args) {
             WeekDay weekday2 = WeekDay.MON;
       }
       public enum WeekDay{
             SUN(),MON(1),TUE(2),WED(2),THI(1),FRI,SAT;
              private WeekDay(){
                     System.out.println("first");
              }
              private WeekDay(int day1,int day2){
                    System.out.println("third");
              }
              private WeekDay(int day){
                   System.out.println("second");
             }
       }
}
输出结果如下:
first
second
second
second      //这两个怎么是“second”?不是为“third”么?      如果我想这两个“second”变成“third”,应该怎么做?  请指点下,谢谢!
second     //你要看他们的重载方式  如果不把想两个“second”变成“third” 只需要对应的传入两个参数比如TUE(2,2),WED(2,2)
first
first
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马