其实 String a="aaa"; 这一句话,创建了一个对象,一个指向这个对象的引用(内存中药是没有aaa这个字符串时);
那么当调用a+="bbb";时候,a并不是字符串,它是一个对象,系统自动调用toString()方法,才让这句语句执行的,这就是String类中toString()方法的唯一作用,我说得对么??

解决方案 »

  1.   

    重说,上面说得不好:
    其实 String a="aaa"; 这一句话,创建了一个对象,一个指向这个对象的引用(内存中药是没有aaa这个字符串时); 
    那么当调用a+="bbb";时候,a并不是字符串,它是一个对象(或是一个引用,不知道,高人指点),系统自动调用toString()方法,把它变为字符串后才让这句语句没有错误的,这就是String类中toString()方法的唯一作用,我说得对么?? 
    红字部分高人指点 啊!!
      

  2.   

    toString的重要性在于 可以让很多输出的流可以理解对象。比如随便一个对象,
    class Test
    {}如果我们想在Console上输出这个对象,那么就应该重载toString方法,
    那么代码就可以写为sysout(test);
    大多数的语言都提供了这种东西的,
    比如C#的ToString,JavaScript的toString, Ruby的to_s
      

  3.   

    JAVA中字符串本身就是一个对象而JDK文档中String类的toString()方法说明是:
    toString() 返回此对象本身(它已经是一个字符串!)对于非String的类来说,toString()的作用是将任意类当作String来打印,当直接输出对象System.out.println(test)时,就会自动调用toString()
    如果没有重载toString(),那么默认打印对象在内存中的地址。
    不过说实在的,有点不太清楚LZ的问题重点,最好能重整一下自己的思路,好让大家能帮上忙
      

  4.   

    a+="bbb";这句并不依靠toString()方法,而是依靠StringBuffer类.
    String中的toString()只是返回它自己而已,主要目的是重写Object类中的toString()方法.
      

  5.   

    另外,Java中所有字符串都是对象的咩.
      

  6.   

    明白一些了,哈哈!
    可以再问俩个问题么??1。什么时候需要重载toString()方法呢?? 2。aa.toString()这就算重载了么?? 重载不是参数类型或个数不一样,而且在同一个类内,才算重载么?
      

  7.   

    1.当前类的toString()方法不同于超类的时候重写它.另外,那是重写overwrite不是重载overload,两者区别可以google咩.2.当然不是,那是普通的调用.这个对了.
      

  8.   

    1 如果toString()的打印效果不符合你的要求时进行重载。
      

  9.   

    toString()方法 是将一些字符,呀,对象呀,数组呀等,通过这个方法呢转换成字符的形式,显示,存储,操作等
    例如 
     public Point{
      int x;
      int y;
      public String toString(){
      return "x="+x+";y="+y;
    }
    }
    这样就可以将坐标打印,存储呀  
      

  10.   

    toString()方法 是将一些字符,呀,对象呀,数组呀等,通过这个方法呢转换成字符的形式,显示,存储,操作等 
    例如  
     public Point{ 
      int x; 
      int y; 
      public String toString(){ 
      return "x="+x+";y="+y; 


    这样就可以将坐标打印,存储呀 楼上这个例子说明的太好了
      

  11.   

    我对toString的理解在于   它是java.lang.Object的方法,被所有的其他类都继承了.
    之所以不是以接口方式实现这个方法在于,对于其他大部分的类,这样的一个方法在overwrite以后,对对象而言还是很好用的.权衡下来.放在抽象类中还是比较合算的,会比需要的时候再实现toString接口要方便(当然我们这里是因为需要实现这个功能的类比较多).当然这样似乎有些强词夺理,如果你依然不能理解的话...你可以去参考API