0

オブジェクトとの間で保存されているデータをどのように配置/アクセスするのですか?

私は非常に単純なゲームを作成しようとしているので、次のようにプレイヤーに関する情報を格納するオブジェクト配列を作成しました。

     player[] p = new player[4];

次に、プレーヤー オブジェクトを次のように配列に入れます。

for(int i = 0; i < 4; i++)
{
p[i] = new player();
}

上記は、それぞれにプレーヤー オブジェクトを持つ 4 つの要素を持つ配列を作成する必要があります。

今...私が迷子になるところです。これは、データ メンバーをオブジェクトに入れるための構文ですか?

player() = {name, turn, rolledNumber}

// 文字列名、ブール値のターン、int rollNumber

//これをウィキから入手するのはおそらく安全な賭けではありませんが、Oracleチュートリアルサイトや他のJavaチュートリアルサイトで何時間も検索した後、私は手ぶらでたどり着きました. これが配列で行われているのを見たので、いくつかの点で似ていると思ったかもしれません。

頭の空いた質問で申し訳ありませんが、私は趣味で Java を学び始めたばかりです。

4

2 に答える 2

1

のデフォルトのコンストラクターを使用するのではなく、&Playerの引数を取るコンストラクターを追加して、次のように使用できます。nameturnrolledNumber

for(int i = 0; i < 4; i++) {
  p[i] = new Player(name, turn, rolledNumber);
}

個々のクラスメンバー変数には、セッターとゲッターを介して引き続きアクセスできます。これはカプセル化として知られています。

Javaコード規約は、クラスが最初の大文字を使用することを示してplayerいるためPlayer、ガイドラインに従ってここに記述されています。

于 2013-02-05T01:20:33.433 に答える
1

Player クラス内の状態 (つまり、この場合は name、turn、rolledNumber) 変数に情報を格納するには、それらをカスタム コンストラクターで設定するか、パブリックにするか (一般的には悪い考えです)、getter/setter を提供する必要があります。メソッド。データを順番に変更し、後でrolledNumberを変更する可能性が高いことを考えると、可能な解決策の1つは、次のようにコンストラクターとゲッター/セッターメソッドを使用してクラスを実装することです...

public class Player
{
    private String playerName;
    private boolean playerTurn;
    private int rolledNumber;

    public Player(String name, bool turn, int number)
    {
        playerName = name;
        playerTurn = turn;
        rolledNumber = number;
    }

    public String getName() { return playerName; }
    public boolean getPlayerTurn() { return playerTurn; }
    public void setPlayerTurn(boolean turn) { playerTurn = turn; }

    ...

}

次に、上記の Reimeus の例に従ってコンストラクターを呼び出します。

于 2013-02-05T01:41:50.217 に答える