黑马程序员技术交流社区

标题: Java可以重写数组的toString方法吗,why? [打印本页]

作者: 黄秋    时间: 2012-1-29 15:17
标题: Java可以重写数组的toString方法吗,why?
在帖子 为什么会出现好多0啊? 里讨论到System.out.println 打印问题,数组会输出一怪字符,其它高级数据类型是会输出元素内容的。后知道,System.out.println 主要是看对象的toString方法,toString转为什么,它就输出什么。那么,可以重写数组的toString方法吗(方便输出内容),why?
作者: 张建银    时间: 2012-1-29 15:32
数组也是Objcet型的,直接打印数组对象,当然也是掉用Object的toString方法,如果要重写数组的toString方法,除非你自己去定义一个数组类,去实现数组的功能,并且覆写toString方法
作者: 黄秋    时间: 2012-1-29 17:25
基本类型的数据,toString是转为字符串;引用类型(高级类型)的toString,由元素的列表组成,按迭代器返回的顺序排列,并用方括号 ("[]") 括起来。数组虽是引用类型,但它的toString,却来自原始的Object,据API:
该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:getClass().getName() + '@' + Integer.toHexString(hashCode())。

当然,输出数组时,可用System.out.println(Arrays.toString(arrayname)); 只是想了解下,java能否象JavaScript 的 prototype,增加或改写底层的方法(或属性)。
作者: 最初的理想    时间: 2012-2-1 16:56
java能否象JavaScript 的 prototype,增加或改写底层的方法(或属性)。这必须可以,要不怎么算是面向对象
作者: 黄秋    时间: 2012-2-1 20:11
最初的理想 发表于 2012-2-1 16:56
java能否象JavaScript 的 prototype,增加或改写底层的方法(或属性)。这必须可以,要不怎么算是面向对象 ...

这必须可以 --- 烦请举例。




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