[英]Java/BlueJ - Trouble printing out items in an ArrayList
我在循环/返回ArrayList中的正确项目时遇到问题。 当我运行程序并使用访问器方法时,它将在终端中返回诸如“ Member @ 13243”之类的项目,而不是我尝试返回的实际成员。 我有两堂课,一堂是“家庭”,一堂是“会员”。
我的任务是:2)getMembers()–返回已添加到Family的成员列表。 3)getMembers(string s)-返回已经添加到Family中的成员列表。 一种。 如果指定的性别无效,将输出错误。 4)showMembers()–使用Member的toString打印已添加到家庭的成员列表5)showMembers(string s)–使用Member的toString打印已添加到指定性别的家庭成员的列表。
我的家庭类代码:
public class Family
{
// instance variables - replace the example below with your own
public int ID;
public String FamilyName;
public String Address;
public String City;
public String State;
public String ZipCode;
public ArrayList<Member> list;
public Family(int ID, String FamilyName, String Address, String City, String State, String ZipCode)
{
this.ID = ID;
this.FamilyName = FamilyName;
this.Address = Address;
this.City = City;
this.State = State;
this.ZipCode = ZipCode;
list = new ArrayList<Member>();
}
public void addMember(Member m ) {
list.add(m);
}
private ArrayList<Member> getMembers(){
return list;
}
public void showAll(){
System.out.println(ID);
System.out.println(Member.memberName);
System.out.println(FamilyName);
System.out.println(Member.memberSex);
System.out.println(Address);
System.out.println(City);
System.out.println(State);
System.out.println(ZipCode);
}
我给班级成员的代码:
public class Member
{
private String memberName;
private String memberSex;
public Member(String memberName, String memberSex){
this.memberName = memberName;
this.memberSex = memberSex;
if (memberSex == "M"){
memberSex = "M";}
else if (memberSex == "F"){
memberSex = "F";}
else System.out.println("Please enter M or F for sex");
}
public String getMemberName(){
return memberName;
}
public String getMemberSex(){
return memberSex;
}
您应该在Member类中重写toString方法。
@Override
public String toString() {
return "Member: "+memberName, "Sex "+memberSex;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.