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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 左华清 黑马帝   /  2012-2-24 14:39  /  1989 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 左华清 于 2012-2-24 17:19 编辑

package cn.itcast.day01;

public class EnumTest1 {
        public static void main(String[]args){
                WeekDay2 weekday=WeekDay2.SUN;
                System.out.println(weekday.nextDay());
        }
}



package cn.itcast.day01;

public class WeekDay2 {
        private WeekDay2(){}
        public static final WeekDay2 SUN=new WeekDay2();
        public static final WeekDay2 MON=new WeekDay2();
       
        public WeekDay2 nextDay(){
                if(this==SUN){
                        return MON;
                }else{
                        return SUN;
                }
        }
       
        public String toString(){
                if(this==SUN){
                        return "SUN";
                }else{
                        return "MON";
                }
        }
}

打印的时候没有写 WeekDay2.toString()方法怎么就打印出了"MON",
这个是怎么运行的.不明白怎么调用了toString()方法.

评分

参与人数 1技术分 +1 收起 理由
荣凯旋 + 1

查看全部评分

4 个回复

倒序浏览
本帖最后由 【专】【属】 于 2012-2-24 14:48 编辑

System.out.println这是方法,个人感觉在其实现时,其内部就是调用对象的toString()方法。可以看一下printWriter类toString()方法的内部实现

评分

参与人数 1技术分 +1 收起 理由
荣凯旋 + 1

查看全部评分

回复 使用道具 举报
每一个对象都有toString()方法,println的时候就自动调用了对象的toString()方法,有些东西虽然看不见,但确实再起着作用

评分

参与人数 1技术分 +1 收起 理由
荣凯旋 + 1

查看全部评分

回复 使用道具 举报
嗯,谢谢!
回复 使用道具 举报
上面正确的,tostring是每个类都具有的方法,当你输出的时候JVM会自动帮你执行的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马