java为什么运行结果是这个?

 我来答
pieryon
2014-10-27 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14410 获赞数:166872
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
对于打印对象,没有重写toString 导致。

现在说一下,什么情况下要重写toString,object类里的toString只是把字符串的直接打印,数字的要转化成字符再打印,而对象,则直接打印该对象的hash码。所以当你要想按照你想要的格式去字符串一些对象的时候,就需要重写toString了。比如一个Student对象,直接toString肯定是一个hash码。然而你想得到的比如是:name:***,age:***。这时就重写toString就是在toString里写:System.out.println(“name:”+student.getName);
System.out.println(“age:”+student.getAge)。
这样再toString就直接反回你想要的格式。

--满意请采纳!!
追答
你好,有问题请追问
满意请采纳
千叶育儿
2014-10-27 · 育儿、诗词分享,每天进步一点点!
千叶育儿
采纳数:1524 获赞数:5379

向TA提问 私信TA
展开全部
因为你没有重写toString,所以默认输出系统的toString方法内容
追问
那一般调用toString都是要重写的对吧?
追答
是的。你要重写成你要输出的格式,这样才会按你的意思输出。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zhd_19890922
2014-10-27
知道答主
回答量:20
采纳率:0%
帮助的人:5.1万
展开全部
str1,str2都是对象,如果没有重写toString,那么只是会把对象在内存中的地址打印出来
追问
明白了,一般用tiString都是会重写的是么?
追答
toString方法是返回该对象的字符串表示,通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂的信息表达式。建议所有子类都重写此方法。Object类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式