Java - 从类中调用私有(private)数组列表

标签 java class arraylist methods

<分区>

我的模板打开时带有选项菜单,用户输入 1-3 之间的内容以选择三个选项之一。

当用户选择选项 1 时,它会要求他们输入一个数字 teamNumber。必须实例化 Team 类,然后将其写入数组列表。

如果 numberList 中至少有一个数字,用户可以选择选项 2。它要求他们输入数组列表中的任何数字并进行搜索。如果找到他们输入的号码,则您输入一个字符串 teamMemberFirstName 和一个字符 firstInitialLastName。然后它将输入写入位于另一个类 TeamMember 中的私有(private)数组列表。

一旦他们在选项 1 和 2 中输入了信息,他们就可以选择选项 3。它允许您根据输入的团队编号打印输入的名称列表。

我不确定在选项 3 中如何从 TeamMemberteamList 调用私有(private)数组列表。关于如何进行此步骤的任何指导?我的代码如下。

主类:

public class Main {
    public static void main(String[] args) {
                        int choosing;
    Scanner scan = new Scanner(System.in);
String input;
int teamNumber;
boolean stayInLoop;
ArrayList<Team> numberList = new ArrayList<Team>();
do {
stayInLoop = true;
System.out.println("1. Add a new team");
System.out.println("2. Add a new team member");
System.out.println("3. View teams");
input = scan.nextLine();

if (input.equals("1")) {
  System.out.println("Enter a team number:");
  teamNumber = scan.nextInt();
  scan.nextLine();
  Team addTeam = new Team(teamNumber);    
  numberList.add(addTeam);
}

if (input.equals("2")){
boolean foundIt = false;
boolean valid = true;
System.out.println("Team number:");
teamNumber = scan.nextInt();
scan.nextLine();
  for (int a = 0; a < numberList.size() && foundIt == false; a++){
  Team addTeam = numberList.get(a);
    if (addTeam.findTeam() == teamNumber) {
    foundIt = true;
    System.out.println("Enter first name of team member:");
    String teamMemberFirstName = scan.nextLine();
    System.out.println("Enter first initial of last name:");
    char firstInitialLastName = scan.nextLine().charAt(0);
    TeamMember inputTeamMember = new TeamMember(teamMemberFirstName, firstInitialLastName);
    inputTeamMember.addMember(inputTeamMember, valid = true);
    System.out.println("Success!");
    }
  }
  if (foundIt == false) {
  System.out.println("Try again.");
  }
}

if (input.equals("3")){
  for (int a = 0; a < numberList.size(); a++) {
  Team addTeam = numberList.get(a);
  //Not sure what to put where there are ????'s - I tried a few ideas and stuff I found online, but nothing worked    
  //I assume I call the method/class here????
  System.out.println("Team: " + addTeam.findTeam() + " Members: " + 
  "I will put the member called from the arraylist here????"); 
  }
}
}while (stayInLoop == true;)
}}

团队成员类:

public class TeamMember {

private final String teamMemberFirstName;
private final char firstInitialLastName;
private ArrayList<TeamMember> teamList = new ArrayList<>();

public TeamMember(String teamMemberFirstName, char firstInitialLastName) {
  this.teamMemberFirstName = teamMemberFirstName;
  this.firstInitialLastName = firstInitialLastName;
}
public int addMember(TeamMember member, boolean valid) {
  valid = teamList.add(member);
  return teamList.size();
}
}

最佳答案

您不能直接从其他类访问私有(private)字段。将您的列表移至 Team 类或创建一个 getter 来检索列表。

关于Java - 从类中调用私有(private)数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35593220/

相关文章:

c# - 具有与 Java(JNI) 和 C#(C++/CLI) 接口(interface)的可移植 C++ 域层的架构注意事项

java - 根据java中的日期查找日期 - 给出错误的答案

java - 无法访问 org.eclipse.core.runtime.IProgressMonitor

java - 如何使用 OnTabChangeListener?

python - 占位符类方法 Python 3

php - php 类中的 Medoo 对象

java - 为什么从 ArrayList 开头删除元素比从末尾删除元素慢?

java - Java 中引用变量大小的差异。 (列表与数组列表)

java - 列中三行不必要的行

jQuery - 查找类中的所有 ID