关于StringBuilder的toString方法

2020-05-17 教育 146阅读

你发现了这个问题,那么恭喜你真的很仔细. 你会了解到更多面向对象的知识

  • 一答案: 直接print输出sb和sb.toString()没区别

  • 二解释:  System.out.print();可以接受int, char等,.还可以接受String类型的参数,  也可以接受其他的Object对象类型的参数,    这就是方法的重载.

当接受Object对象时, 会调用对象的toString()方法来获得对象的String 值,然后输出.

所以你手动调用也可以print(sb.toString()),

让print方法帮你调用也可以print(sb).

但是有时候,必须是自己手动调用

String[] ss = {"x","y",sb};//这个时候,sb是StringBuilder对象,不能放到String数组里,所以报错

String[] ss = {"x","y",sb.toString()};//正确的

  • 三启发进阶: 当我们在自定义类型时. 就算没有自己写toString方法,也从Object或父类那里继承了toString方法.  千万不要沾沾自喜,以为可以少写一个方法. 此时对象会输出一个我们看不懂的包名.类名@591839 这样的东东!!! 所以我们需要按照自己的意愿来重写toString方法. 具体代码发你私信了

  • 最后说一个特别尴尬的 String[] ss = {"x","y",sb.toString()}; // 基本上大家都习惯把 StringBuilder 缩写成sb, 不要介意,不要太幼稚当成脏话,学知识学程序,大家都这样缩写...这是习惯.

声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com