import java.util.*;class Person
{
      public Person(String name,int )
     {   
         this.name=name;
         this.=;
      }
      
      public String toString()
      {    
           return name+" "+;
       }
       
      private String name;
      private int    ;
}
public class Points
{   
    public static void printElements(Collection c)
   {
        Iterator it=c.iterator();
        while(it.hasNext())
        {
              System.out.println(it.next()); 
         }
    }    public static void main(String args[])
   {
        Person aperson1=new Person("aa",66);
        Person aperson2=new Person("bb",70);
        
        Vector <Person>b=new Vector<Person>();
        b.add(aperson1);
        b.add(aperson2);//问题?
        printElements(b);
    }
}小弟是初学者,我想问的是,在b.add(aperson1),b.add(aperson2)这两个语句中中,aperson1和aperson2这两个对象是不是自动调用了toString()方法?如果是的话,他是怎么调用的?谢谢。
system.out.println(xx)=system.out.println(xx.toString)  是因为 println会自动使对象调用toString方法。

解决方案 »

  1.   

    add的时候才不会调用呢。
    只是打印的时候,会自动调用toString()把对象转换成字符串显示出来。
      

  2.   

    我开始的时候把toString错误的写成了tostring.最后的结果显示的是地址。那这又是为什么?哪位高手帮帮忙看!
      

  3.   

    重写了toString方法   会在printElements中自动调用
    如果你写错了toString名字的的话  就不是重写了  自然就达不到要求了
      

  4.   

    谢谢高人指点!我明白了!thanks!