黑马程序员技术交流社区
标题:
今天看张老师的枚举,有个小疑惑~~~
[打印本页]
作者:
张小庆
时间:
2012-4-20 19:10
标题:
今天看张老师的枚举,有个小疑惑~~~
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
作者:
张超超
时间:
2012-4-20 19:15
关键是这段代码 private WeekDay(int day){System.out.println("second");}的问题
day是一个参数,但是在类中却没有任何关于day的操作,只是输出“second”所以不管你在参数中传递什么实参,程序只是输出“second”。
那个输出first,这个你应该看的懂吧。
作者:
岳民喜
时间:
2012-4-20 19:26
SUN(333),TUE(1),WED(2), 你输得这些参数都代表只有一个参数,都在int范围内,所以调用的是WeekDay(int day)
你程序就一个无参和一个有参方法 ,所以肯定是这个结果
作者:
liuyang
时间:
2012-4-20 19:26
很显然想实现上面那种打印结果,就要判断你传入的参数然后打印,但是现在你的打印语句里打印的值和你传入的参数没有一点关系,只是一个字符串,所以不管你
穿什么打印的都是那个字符串。
作者:
张小庆
时间:
2012-4-20 20:35
明白了,谢谢大家啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2