ConnectionBook cb = new ConnectionBook("HLM","Boy",123,"78201");
member.add(cb);
for(ConnectionBook c:member)
{
System.out.println("Name+Sex+Tel+Addr" + c.getName()+c.getSex()+c.getTel()+c.getAddr());
}
今天研究了一下午,在运行到这里的时候,控制台上输出的总是 Name+Sex+Tel+Addr nullnull0.0null
其中ConnectionBook类里面定义有 ArrayList<ConnectionBook> member = new ArrayList<ConnectionBook>();
其他变量函数也都有,就是这里不懂,明明已经赋值了,为什么显示不出来?
求教各位大神
------解决方案--------------------
你把ConnectionBook的代码贴出来,问题出在了ConnectionBook的构造方法执行的时候没有正确复制给对应的name sex tel addr这几个属性
------解决方案--------------------
取值肯定要这样的:
- Java code
ArrayList<ConnectionBook> member = new ArrayList<ConnectionBook>(); //如果只有一条数据的话。直接 ConnectionBook cb=member.get(0); //然后输入就是了 //如果是多条数据的话。 //--- if(member.size()>0) { for(int i=0;i<member.size();i++) { ConnectionBook cb=member.get(i); System.out.println("Name+Sex+Tel+Addr" + cb.getName()+cb.getSex()+cb.getTel()+cb.getAddr()); } }
------解决方案--------------------
写错2个地方
- Java code
//写错public ConnectionBook(String aName,String aSex,double aTel,String aAddr){aName=name;aSex=sex;aTel=tel;aAddr=addr;}//修改后//应该把传进来的值赋给ConnectionBoo类的私有变量//你之前的写法是把ConnectionBoo类的私有变量(null)赋给传进来的值,私有变量仍然为nullpublic ConnectionBook(String aName,String aSex,double aTel,String aAddr){name=aName;sex=aSex;tel=aTel;addr=aAddr;}//写错ConnectionBook cb = new ConnectionBook("getName","getSex",getTel,"getAddr");//修改后,getName直接传就可以了,你上面的写法等于是传了一个值为getName的String进去,这是不对的ConnectionBook cb = new ConnectionBook(getName,getSex,getTel,getAddr);