黑马程序员技术交流社区

标题: StringBuff重写toString问题 [打印本页]

作者: h390    时间: 2016-2-7 11:01
标题: StringBuff重写toString问题
我看到视频里面老师讲的StringBuff是重写toString方法的。为什么我打出来的还是地址值
  1. public class StringBuffer {
  2.         public static void main(String[] args) {
  3.                 StringBuffer sb = new StringBuffer();
  4.                 System.out.println("sb"+sb);
  5.         }
  6. }
复制代码

结果如StringBuffer@1cacd5d4
作者: h390    时间: 2016-2-7 11:18
我把项目包类全部删除掉再重新写一遍就好!直是奇怪
作者: ContainsM    时间: 2016-2-7 15:08
本帖最后由 ContainsM 于 2016-2-7 15:16 编辑

因为你的主类 名字就是 StringBuffer 所以 就近原则,你new 的那个类是 你当前的类
作者: tujiu888    时间: 2016-2-8 18:17
这个不需要你命名 老师讲解的时候曾经提到过,创建类的时候不要直接以封装好的类名对类进行命名,那样的话就是直接调用本类的地址值,而不是调用StringBuffer这个类,以后命名的时候加上Demo1 或者Test 或者StringBuffer01 这样就不会出现你说的这个问题了
作者: 谁的苍茫    时间: 2016-2-8 22:53
请不要将你的类起名跟Java自带的类同名,会引起不必要的麻烦
作者: 1178988315    时间: 2016-2-9 23:25
Java提供的StringBuffer重写了tostring可是你的StringBuffer类没有




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2