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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张小庆 中级黑马   /  2012-4-20 19:10  /  2486 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package cn.itcast.day1;
public class EnumTest
{
/**
  * @param args
  */
     public static void main(String[] args)
    {
       // TODO Auto-generated method stub
  
        WeekDay weekDay2 = WeekDay.WED;
     }
     public enum WeekDay
    {
         SUN(333),MON,TUE(1),WED(2),THI,FRI,SAT;//这里括号里不管我写多少都会出现下面的结果,不是很明白,哪位大侠给解释解释
         private WeekDay(){System.out.println("first");}
          private WeekDay(int day){System.out.println("second");}
  
     }
}

运行后的结果:
second
first
second
second
first
first
first


5 个回复

倒序浏览
关键是这段代码  private WeekDay(int day){System.out.println("second");}的问题

day是一个参数,但是在类中却没有任何关于day的操作,只是输出“second”所以不管你在参数中传递什么实参,程序只是输出“second”。
那个输出first,这个你应该看的懂吧。
回复 使用道具 举报
SUN(333),TUE(1),WED(2), 你输得这些参数都代表只有一个参数,都在int范围内,所以调用的是WeekDay(int day)
你程序就一个无参和一个有参方法 ,所以肯定是这个结果
回复 使用道具 举报
很显然想实现上面那种打印结果,就要判断你传入的参数然后打印,但是现在你的打印语句里打印的值和你传入的参数没有一点关系,只是一个字符串,所以不管你
穿什么打印的都是那个字符串。
回复 使用道具 举报
明白了,谢谢大家啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马