黑马程序员技术交流社区

标题: new对象,打印对象引用问题 [打印本页]

作者: xiexie758    时间: 2015-10-22 12:58
标题: new对象,打印对象引用问题
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才会出现,改成其他函数名则不会。

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

谢谢,了解啦
作者: jone.net    时间: 2015-10-30 22:06
学习了......支持
作者: JYcainiao    时间: 2015-10-30 22:13
本帖最后由 JYcainiao 于 2015-10-30 22:16 编辑

这个toString是干嘛呢?  没学过呢
作者: 1379号监听员    时间: 2015-10-30 22:21
学习了!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2