ArrayList で正しいアイテムをループ/返すことに問題があります。プログラムを実行し、アクセサ メソッドを使用すると、返そうとしている実際のメンバーではなく、「Member@13243」などの項目が端末に返されます。「ファミリー」と「メンバー」の 2 つのクラスがあります。
私のタスクは次のとおりです。 2) getMembers() – ファミリーに追加されたメンバーのリストを返します。3) getMembers(string s) - ファミリーに追加されたメンバーのリストを返します。を。指定された性別が有効でない場合、エラーが出力されます。4) showMembers() – メンバーの toString を使用して、ファミリーに追加されたメンバーのリストを出力します 5) showMembers(string s) – メンバーの toString を使用して、指定された性別のファミリーに追加されたメンバーのリストを出力します.
クラス Family の私のコード:
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;
}