码迷,mamicode.com
首页 > 其他好文 > 详细

引用的“大概模样”

时间:2014-07-02 17:01:23      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:编程导论   java   引用   

《编程导论(Java)·2.4.1 引用的涵义》

【p88】

    语句System.out.println(new A())的打印输出,可以视为A对象的引用的大概模样bubuko.com,布布扣

    因为程序员并不关心对象(在内存中)的真正位置,只要一个类的不同对象有一个能够彼此区别的数据即可,所以某个输出如OO.A@18c74,可以解读成:本引用指向“属于OO.A类的、在18c74位置”的对象。

    事实上,System.out.println(new A())所做的事情是System.out.println(new A().toString())。

Q: What is the difference between System.out.println(o.toString()); andSystem.out.println(o);?

A: Each of System.out.println(o.toString()); and System.out.println(o); obtains and outputs object o‘s string representation. System.out.println(o.toString()); explicitly calls toString(), whereas System.out.println(o); implicitly calls toString().


Object类定义了toString()方法,返回该对象的字符串表示。其方法头为:public String toString()

Object.toString()实现的返回值,由类名、at 标记符“@”和该对象哈希码的无符号十六进制表示组成,classname@hashcode,

getClass().getName() + ‘@‘ + Integer.toHexString(hashCode())


     由 Object 类定义的hashCode()方法会针对不同的对象而返回不同的整数,这通常是通过将该对象的内部地址转换成一个整数来实现的;但子类改写hashCode()时,并不需要将它作为后置条件。
一般而言,所有子类都应该改写此toString()方法,以一个简明又容易读懂的文本形式的字符串说明该对象。


引用的“大概模样”,布布扣,bubuko.com

引用的“大概模样”

标签:编程导论   java   引用   

原文地址:http://blog.csdn.net/yqj2065/article/details/36410059

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!