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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄秋 黑马帝   /  2012-1-29 15:17  /  4610 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

在帖子 为什么会出现好多0啊? 里讨论到System.out.println 打印问题,数组会输出一怪字符,其它高级数据类型是会输出元素内容的。后知道,System.out.println 主要是看对象的toString方法,toString转为什么,它就输出什么。那么,可以重写数组的toString方法吗(方便输出内容),why?

评分

参与人数 1技术分 +1 收起 理由
admin + 1 赞一个!

查看全部评分

4 个回复

倒序浏览
数组也是Objcet型的,直接打印数组对象,当然也是掉用Object的toString方法,如果要重写数组的toString方法,除非你自己去定义一个数组类,去实现数组的功能,并且覆写toString方法

评分

参与人数 1技术分 +1 收起 理由
admin + 1 赞一个!

查看全部评分

回复 使用道具 举报
基本类型的数据,toString是转为字符串;引用类型(高级类型)的toString,由元素的列表组成,按迭代器返回的顺序排列,并用方括号 ("[]") 括起来。数组虽是引用类型,但它的toString,却来自原始的Object,据API:
该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:getClass().getName() + '@' + Integer.toHexString(hashCode())。

当然,输出数组时,可用System.out.println(Arrays.toString(arrayname)); 只是想了解下,java能否象JavaScript 的 prototype,增加或改写底层的方法(或属性)。

评分

参与人数 1技术分 +1 收起 理由
admin + 1 再给1分

查看全部评分

回复 使用道具 举报
java能否象JavaScript 的 prototype,增加或改写底层的方法(或属性)。这必须可以,要不怎么算是面向对象
回复 使用道具 举报
最初的理想 发表于 2012-2-1 16:56
java能否象JavaScript 的 prototype,增加或改写底层的方法(或属性)。这必须可以,要不怎么算是面向对象 ...

这必须可以 --- 烦请举例。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马