为了账号安全,请及时绑定邮箱和手机立即绑定

使用String重写StringBuilder类

使用String重写StringBuilder类

HUX布斯 2018-10-11 13:14:16
我重写的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个赞

  1. 你并没有修改String类啊。主要表现在你没有继承之,当然,final的类你继承不了。

  2. System.out.print(Object o)相当于System.out.print(o.toString())你想打印出HelloWorld必须要重写toString()方法,这个方法来自于Object,所以所有对象都支持,默认的toString方法就是返回地址的。toLowerCase函数时能打印出helloworld是因为它返回的是StringString是重写了toString方法的。


查看完整回答
反对 回复 2018-11-22
  • 1 回答
  • 0 关注
  • 598 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号