黑马程序员技术交流社区
标题:
关于枚举求解
[打印本页]
作者:
翟宝海
时间:
2013-5-29 23:18
标题:
关于枚举求解
本帖最后由 翟宝海 于 2013-6-3 23:58 编辑
再看张老师的高新视频时,在第13个视频中,张老师简单创建了一个Weekday的枚举,代码如下:
public class WeedDay
{
private WeekDay() {}
public final static WeekDay SUN = new WeekDay();
public final static WeekDay MOD = new WeekDay();
public void nextDay()
{
if(this == SUN)
{
return MON;
}
else
{
return SUN;
}
}
public String toString()
{
return this == SUN?"SUN":"MON";
}
}
复制代码
第十四个视频又创建了一个枚举,代码如下:
public enum WeekDay
{
SUN,MON,TUE,WED,TNI,FRI,SAT
}
复制代码
我知道,第一个是自己写的枚举,需要自己定义各种方法,如toString;
第二个是按照JAVA规定的范式写的枚举,自带了JAVA提供的各种便利方法;
现在想问一下,enum 是个修饰符吗?它起什么样的作用?
toString是复写的Object中的toString方法,如果不覆盖,System.out.println()语句就会打印出这个对象的地址值;
这个toString我们没有调用,它是如何运行的?
作者:
小陈期待逆袭
时间:
2013-5-29 23:27
本帖最后由 小陈期待逆袭 于 2013-5-29 23:28 编辑
首先,enum和class的性质一样,只不过他是用来定义一个枚举。
第二个问题,我是这么认为的在我们调用打印的方法时,底层自动调用toString方法,如果没有覆盖父类(Object)toString方法,他会调用Object的toString方法,就是输出对象的地址值,当我们覆盖了toString方法,他就会调用对象所属类的toString方法了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2