我重写的StringBuiler类:iStringBuilderpublic class iStringBuilder { String target = new String(); public iStringBuilder(String newString) { target = newString; } public void append(iStringBuilder newString) { target = target + newString; } public void append(int i) { String istr = i + ""; target = target + istr; } public int length() { return (target.length()); } public char charAt(int i) { return (target.charAt(i)); } public String toLowerCase() { return (target.toLowerCase()); } public String toUpperCase() { return (target.toUpperCase()); }}然后是我用来测试类的测试类 Test:然后是输出:问题是:打印最初的字符串test时为什么不是HelloWorld而是一个地址,如果说我的方法彻底写错的话那为什么在toLowerCase函数时能打印出helloworld……求诸位指教(我知道String类不可变,但是我写入编译器的时候编译器没有报错,然后翻书百度未果,故来提问……)
1 回答

侃侃无极
TA贡献2051条经验 获得超10个赞
你并没有修改
String
类啊。主要表现在你没有继承之,当然,final
的类你继承不了。System.out.print(Object o)
相当于System.out.print(o.toString())
你想打印出HelloWorld
必须要重写toString()
方法,这个方法来自于Object
,所以所有对象都支持,默认的toString
方法就是返回地址的。toLowerCase
函数时能打印出helloworld
是因为它返回的是String
,String
是重写了toString
方法的。
添加回答
举报
0/150
提交
取消