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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xiexie758 中级黑马   /  2015-10-22 12:58  /  824 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Person 类:
cclass Person
{
        private String name;
        private int age;
        Person(String name,int age)
        {
                this.name=name;
                this.age=age;
                System.out.println("属性打印");
        }
        
        /*
        public String toString()
        {       
                System.out.println("person类toString方法");
                return name+"::"+age;
        }
        */
}

问题:
Person p=new Person("zhangsan",20);
若类中没有toString();方法,打印引用对象p的值为:引用地址值,如图

若类中有toString()方法,打印引用对象p的值为:




为什么不同?
注:而且只有方法是String toString()打印引用类型P才会出现,改成其他函数名则不会。

评分

参与人数 1黑马币 +4 收起 理由
jone.net + 4 学习了!

查看全部评分

6 个回复

倒序浏览
可能是虚拟机自动识别吧,就好比主函数名main就是JVM识别,换成其他函数名JVM就不识别,不认为是主函数入口了。使用myeclipse的时候可以自动生成toString方法,方法名就是toString。
以上仅供参考。
回复 使用道具 举报
如果你不重写toString();方法的话,系统调用的是object类中的toString();方法,所以打印出来的是内存地址。
回复 使用道具 举报
耀阳圣尊 发表于 2015-10-22 14:28
如果你不重写toString();方法的话,系统调用的是object类中的toString();方法,所以打印出来的是内存地址 ...

谢谢,了解啦
回复 使用道具 举报
学习了......支持
回复 使用道具 举报
本帖最后由 JYcainiao 于 2015-10-30 22:16 编辑

这个toString是干嘛呢?  没学过呢
回复 使用道具 举报
学习了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马