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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 闫江龙 黑马帝   /  2011-12-31 00:58  /  2166 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 闫江龙 于 2011-12-31 19:25 编辑

public abstract class WeekDay1 {
        private WeekDay1(){}
       
        public final static WeekDay1 SUN = new WeekDay1(){
                public WeekDay1 nextDay() {       
                        return MON;
                }       
        };

        public final static WeekDay1 MON = new WeekDay1(){               
                public WeekDay1 nextDay() {               
                        return SUN;
                }       
        };       
       
        public abstract WeekDay1 nextDay();
       
        public String toString(){
                return this==SUN?"SUN":"MON";
        }

}
public class EnumTest {
        public static void main(String[] args) {
        WeekDay1 weekDay = WeekDay1.MON;
        System.out.println(weekDay.nextDay());//weekDay.nextDay()得到的是对象 但打印的时候却打印出的字符串,调用tostring()方法的原理是什么???都有什么情况会调用他?如果这样写呢weekDay.nextDay().tostring()   
       }
}

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

3 个回复

倒序浏览
没人理啊 唉
回复 使用道具 举报
沈样 黑马帝 2011-12-31 09:57:02
藤椅
返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。 这个api上写的,说明的打印对象的字符串形式,但是一般都会重写这个类,因为通常System.out.println()对象的输出格式不是我们想要的,就可以通过改写toString().只要是输出格式的问题

评分

参与人数 1技术分 +1 收起 理由
杨强 + 1

查看全部评分

回复 使用道具 举报
输出打印的时候就会调用自动调用该对象的tostring()方法,System.out.println()时就会调用,weekDay.nextDay().tostring()  是一样的效果,自己定义的类如果想看到自己想要的效果那么就要自己定义toString方法,否则就会调用Object类的toString方法。

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