简体   繁体   English

Java / BlueJ-无法打印出ArrayList中的项目

[英]Java/BlueJ - Trouble printing out items in an ArrayList

I'm having issues with looping/returning correct items in my ArrayList. 我在循环/返回ArrayList中的正确项目时遇到问题。 When I run my program, and use my accessor method, it returns items in the terminal such as "Member@13243" instead of the actual member I'm trying to return. 当我运行程序并使用访问器方法时,它将在终端中返回诸如“ Member @ 13243”之类的项目,而不是我尝试返回的实际成员。 I have two classes, one "Family" and one "Member". 我有两堂课,一堂是“家庭”,一堂是“会员”。

My tasks are: 2) getMembers() – returns a List of members that had been added to the Family. 我的任务是:2)getMembers()–返回已添加到Family的成员列表。 3) getMembers(string s) - returns a List of members that had been added to the Family. 3)getMembers(string s)-返回已经添加到Family中的成员列表。 a. 一种。 An error should be output if the specified sex is not valid. 如果指定的性别无效,将输出错误。 4) showMembers() – use Member's toString to print a list of Members that had been added to a Family 5) showMembers(string s) – use Member's toString to print a list of Members that had been added to a Family of the specified sex. 4)showMembers()–使用Member的toString打印已添加到家庭的成员列表5)showMembers(string s)–使用Member的toString打印已添加到指定性别的家庭成员的列表。

My code for class 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); 

}

My code for class Member: 我给班级成员的代码:

 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;
    }

You should override toString method in your Member class. 您应该在Member类中重写toString方法。

 @Override
    public String toString() {
    return "Member: "+memberName, "Sex "+memberSex;

}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM