当数组位于对象变量

时间:2018-03-01 21:14:24

标签: java arrays oop

所以我有一个在主程序中创建的数据类鞭打,这个类里面是一个包含x个玩家及其变量的玩家的实例变量

public class Whiplash {

private int rounds;
private WhiplashQuestions questions;
private Player[] players;

public Whiplash(int ROUNDS, WhiplashQuestions QUESTIONS, Player[] PLAYERS) {
    setRounds(ROUNDS);
    setPlayers(PLAYERS);
    setWhiplashQuestions(QUESTIONS);
}



public int getRounds() {
    return rounds;

}

public void setRounds(int rounds) {
    this.rounds = rounds;
}

public Player[] getPlayers(int id) {
    return players[id];
}

public void setPlayers(Player[] players) {
    this.players = players;
}

 public WhiplashQuestions getQuestions() {
    return questions;
}

public void setWhiplashQuestions(WhiplashQuestions question) {
    this.questions = question;
}

}

public class Player {


private int id;
private int points;
private String player;

   public Player(int ID, int POINTS, String PLAYER) {
    setId(ID);
    setPoints(POINTS);
    setPlayer(PLAYER);
}

public int getId() {
    return id;
}

public void setId(int id) {
    this.id = id;
}

public int getPoints() {
    return points;
}

public void setPoints(int points) {
    this.points = points;
}

public String getPlayer() {
    return player;
}

public void setPlayer(String player) {
    this.player = player;
}

}

else if (command.startsWith("#whiplash")) {
        int usercount = getUserCount(client);
        String users[] = getUsersInRoom(client);
        Player[] player = new Player[usercount];

        player = convertUsersToPlayers(users, usercount);
        WhiplashQuestions q = new WhiplashQuestions("Whats your favorite color? ");

        Whiplash wl = new Whiplash(10, q, player);
        startWhiplash(wl);
public Player[] convertUsersToPlayers(String[] users, int userCount) {
    Player p[] = new Player[userCount];

    int u = users.length;

    for (int i = 0; i < users.length; i++) {
        p[i] = new Player(i, 0, users[i]);
    }

    return p;
}

public int getUserCount(ConnectionToClient client) {
    String room = client.getInfo("room").toString();
    int count = 0;

    Thread[] clientThreadList = getClientConnections();

    for (int i = 0; i < clientThreadList.length; i++) {

         ConnectionToClient clientProxy = ((ConnectionToClient) clientThreadList[i]);
        if (clientProxy.getInfo("room").equals(room)) {
            count++;
        }
    }

    return count;
}

public String[] getUsersInRoom(ConnectionToClient client) {
    String room = client.getInfo("room").toString();
    int connectedUsers = getUserCount(client);
    String[] usersInRoom = new String[connectedUsers];

    Thread[] clientThreadList = getClientConnections();

    for (int i = 0; i < clientThreadList.length; i++) {

        ConnectionToClient clientProxy = ((ConnectionToClient) clientThreadList[i]);

        if (clientProxy.getInfo("room").equals(room)) {
            try {
                //System.out.println(clientProxy.getInfo("userName".toString()));
                usersInRoom[i] = clientProxy.getInfo("userName".toString()).toString();

            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }
    return usersInRoom;
}

所以在我的主程序中,我通过将玩家字符串转换为玩家类型,然后传递正确的值来创建一个挥动动作的实例。我希望能够从主程序访问各个Player []索引,并对这样做的语法感到困惑。例如,在主程序中,如果我想获得第三个玩家玩家字符串的打印鞭打实例,我可以按照System.out.print(whiplash.getPlayers [3] .getPlayers()。toStrng( )); ?

1 个答案:

答案 0 :(得分:0)

所以这是我在循环中寻找和工作的语法(用i循环)

 wl.getPlayers()[i].getPlayer();