创建同一类的多个对象的更简单方法

Jam*_*rty 1 java methods class

我有一个Player类,包含所有的setter和getter.

我必须从键盘上读5个玩家,我很好,但在创建时:

Player player1 = new Player();
Run Code Online (Sandbox Code Playgroud)

然后要求所有输入.

有什么方法我可以增加1来制作Player2,Player3等.

我试过++方法.我不知道我究竟要求的是什么.提前抱歉让您感到困惑.

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);

    Player player1 = new Player();
    player1.getSurname();
    player1.getFirstName();
    player1.getAge();
    player1.getHeight();
    player1.getRank();

    Player player2 = new Player();
    player2.getSurname();
    player2.getFirstName();
    player2.getAge();
    player2.getHeight();
    player2.getRank();

    Player player3 = new Player();
    player3.getSurname();
    player3.getFirstName();
    player3.getAge();
    player3.getHeight();
    player3.getRank();
Run Code Online (Sandbox Code Playgroud)

cri*_*007 5

自我记录代码是首选.get方法应该只是return一个值,而不是执行一个动作,如用户输入.

Scanner in = new Scanner(System.in);

int NUM_PLAYERS = 5;

ArrayList<Player> players = new ArrayList<Player>();

for (int i = 0; i < NUM_PLAYERS; i++) {
    Player p = new Player();

    System.out.print("Surname: ");
    String surname = in.nextLine();

    System.out.print("Firstname: ");
    String fname = in.nextLine();

    System.out.print("Age: ");
    int age = in.nextInt();

    System.out.print("Height: ");
    int height = in.nextInt();

    System.out.print("Rank: ");
    int rank = in.nextInt();

    p.setSurname(surname);
    p.setFirstName(fname);
    p.setAge(age);
    p.setHeight(height);
    p.setRank(rank);

    System.out.println("Current Player \n" + p);
    players.add(p);
    in.nextLine(); // clear the buffer
}

System.out.println("All players");
System.out.println(players);
Run Code Online (Sandbox Code Playgroud)

使用完整的模型对象和set方法来实际分配数据

public class Player {

    private String surname;
    private int height;
    private int rank;
    private int age;
    private String firstName;

    public String getSurname() {

        return surname;
    }

    public void setSurname(String surname) {
        this.surname = surname;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getHeight() {
        return height;
    }

    public void setHeight(int height) {
        this.height = height;
    }

    public int getRank() {
        return rank;
    }

    public void setRank(int rank) {
        this.rank = rank;
    }

    @Override
    public String toString() {
        return "Player{" +
                "surname='" + surname + '\'' +
                ", height=" + height +
                ", rank=" + rank +
                ", age=" + age +
                ", firstName='" + firstName + '\'' +
                '}';
    }
}
Run Code Online (Sandbox Code Playgroud)