黑马程序员技术交流社区
标题:
帮忙看下下面这段代码
[打印本页]
作者:
疯子的昨天
时间:
2014-2-6 00:10
标题:
帮忙看下下面这段代码
public class meiju {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
WeekDays x = WeekDays.SUN;
System.out.println(x.name());
System.out.println(WeekDays.valueOf("SUN"));
System.out.println(WeekDays.valueOf("SUN").toString());
}
public enum WeekDays{
SUN,MON,TUE,WED,THR,FRI,SAT;
}
}
想问下System.out.println(WeekDays.valueOf("SUN"));
System.out.println(WeekDays.valueOf("SUN").toString());
这两句的区别。 我输出的结果都是SUN 问下什么区别。
还有为什么传入的值要写"SUN"字符串。 直接写 SUN 就会报错?
作者:
Unicorn319
时间:
2014-2-6 01:50
第一个问题
没有区别,前一个自动调用了toString方法
但是枚举类型的name 和toString是有区别的
name() 被final修饰,是不能被覆盖的
toString()方法可以覆盖。
比如:
public String toString() {
String name="这一天是"+this.name();
return name;//在调用就能看到区别了
}
复制代码
第二个问题
把鼠标方法在valueOf方法就可以看到,它需要我们传入一个String对象作为参数
直接写SUN编译器不知道你在说什么
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2