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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 翟宝海 中级黑马   /  2013-5-29 23:18  /  1112 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 翟宝海 于 2013-6-3 23:58 编辑

再看张老师的高新视频时,在第13个视频中,张老师简单创建了一个Weekday的枚举,代码如下:
  1. public class WeedDay
  2. {
  3.         private WeekDay() {}
  4.         public final static WeekDay SUN = new WeekDay();
  5.         public final static WeekDay MOD = new WeekDay();
  6.         public void nextDay()
  7.         {
  8.                 if(this == SUN)        
  9.                 {
  10.                         return MON;
  11.                 }
  12.                 else
  13.                 {
  14.                         return SUN;
  15.                 }
  16.         }
  17.         public String toString()
  18.         {
  19.                 return this == SUN?"SUN":"MON";
  20.         }
  21. }
复制代码
第十四个视频又创建了一个枚举,代码如下:
  1. public enum WeekDay
  2. {
  3.         SUN,MON,TUE,WED,TNI,FRI,SAT
  4. }
复制代码
我知道,第一个是自己写的枚举,需要自己定义各种方法,如toString;
        第二个是按照JAVA规定的范式写的枚举,自带了JAVA提供的各种便利方法;
        现在想问一下,enum 是个修饰符吗?它起什么样的作用?
                              toString是复写的Object中的toString方法,如果不覆盖,System.out.println()语句就会打印出这个对象的地址值;
                              这个toString我们没有调用,它是如何运行的?

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

1 个回复

倒序浏览
本帖最后由 小陈期待逆袭 于 2013-5-29 23:28 编辑

首先,enum和class的性质一样,只不过他是用来定义一个枚举。
第二个问题,我是这么认为的在我们调用打印的方法时,底层自动调用toString方法,如果没有覆盖父类(Object)toString方法,他会调用Object的toString方法,就是输出对象的地址值,当我们覆盖了toString方法,他就会调用对象所属类的toString方法了。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马