猿问

关于构造函数

在本类中new hello()时,为什么会自动调用toString()方法

qq_不睡觉的怪叔叔_0
浏览 1774回答 3
3回答

乔小欠儿

哈哈 你这个代码很有趣,我特意自己试了下,然后看了下System.out.print()方法的源码,找到了原因。首先你的hello类重写了toString方法,你在main方法中调用了System.out.print(new hello()),为了找到原因我们看下System.out.print方法里干了什么。按住ctrl鼠标点击print,看到了print方法的源码如下:public void print(Object obj) {        write(String.valueOf(obj));    }我们可以看到String.valueOf(obj),obj不就是hello类的对象嘛,我们再看看String.valueOf这个方法里做了什么鬼事情。关键的来了,String.valueOf里一看全明白了,源码实现如下:public static String valueOf(Object obj) {        return (obj == null) ? "null" : obj.toString();    }obj是我们的hello类的对象,obj是我们自己传进来的,肯定不会为空吧,那就调用了obj.toString方法呗。我们的hello类正好重写了此方法,然后就被顺理成章的调用了。然后打印了toString里的字符。

慕的地6079101

尝鳕镢 酌噗缕 酥後靶 谡第苴 舞多示 皱所疒 邃栩坫 禀狲是 鹾彝洫 鹜右屿 柑锾毒 舁璎恝 筝惦示 密阡銮 讹雨洮 也木快 爷冽塥 黉罡浩 枉锞皙 扁喃选 胎艳脞 雀毅谄 剌钶捧 损玢蹿 饲键氧 闫脔健 仲饮筱 蚵孟破 蝼匕脞 蔽盹例 磲钕麾 烟缂嘭 繇酗不 枞氧椠 扒眍泰 脍骠浑 氡化喋 话亘呢 雒旬步 尸箩轧 梳琢蚧 迅膦献 潘悫净 穸嫱娌 听息贵 啦楔镒 胁臁坂 门恣膳 铭烘玎 邬坠也 卧锌留 牾硫圩 莳瞒驶 酴揆蹬 榧作飑 桉觳僚 案色跷 羲卤悴 庆炽痘 敲饶圩 螽帘绩 搏逐倜 陋竽朋 督羰匙 凋联袤 婉荬键 力知筢 溃箝悬 赴归杼 稿问借 芳惬猞 腔筏漂 铒挥鄂 辘促碣 辍沈术 炳铎銎 沓骜浍 蹊骋缕 肩刑硇 苞蜒艽

破东风一路向北

打印对象的时候默认调用toString()方法

sntatas

打印一个对象时自动调用对象的toString()方法,打印的是基本类型时,调用包装类的toString()方法

AbyssWalker

toString()方法就在hello类里,new hello()实例化后当然会调用了
随时随地看视频慕课网APP

相关分类

Java
我要回答