我怎么弄不懂这个输出:
        import java.util.*;class  Penson{
private String s;
public Penson(String s){
this.s=s;
print();
}
public String print(){
return "姓名"+this.s;
}
}public class TestCollection {
public static void main(String args[]){
List li=new ArrayList();
li.add("作者");
li.add(new Penson("wuqi"));
li.add("书名");
li.add("java编程");
Iterator it=li.iterator();
    while(it.hasNext()){
    Object obj=it.next();
System.out.println(obj);
}
} }
本来打算输出为:
作者
姓名 wuqi
书名
java编程
可输出为:
作者
com.cn.ww.Penson@c17164
书名
java编程大侠们帮忙解答下

解决方案 »

  1.   

    写一个
    @Override public String toString(){
        ...
    }
    方法,
      

  2.   

    li.add(new Penson("wuqi"));你要输出对象干嘛?
      

  3.   


    public Penson(String s){
          this.s=s;
      }
        public String toString(){
              return "wuqi";
       }
    }
      

  4.   


    public Penson(String s){
          this.s=s;
      }
        public String toString(){
              return s;
       }
    }
      

  5.   

    li.add(new Penson("wuqi"));这句要这么写li.add(new Penson("wuqi").print());~~~~构造函数没有问题