0

私はJavaが初めてで、演習として戦艦のゲームを作成しています。明らかに、2 つのゲーム ボード (各プレイヤーに 1 つ) があり、各ボードには 3 つの船が割り当てられます。私の考えは、「ship」クラスを含む「GameBoard」クラスを作成することです。これにより、配置されるボードのインスタンスである新しい船を作成できます。これが私がこれまでに持っているものです:

public class GameBoard {
    int columnCount = 7;
    int rowCount = 7;
    int spaceCount = rowCount*columnCount;

    private class ship {
        private String name;
        private void setName(String newName) {
            name = newName;
        }
    }
}

今私の質問は、ゲームボード内で新しい船を呼び出す方法です。新しいボードを作成するには、次のようにします。

GameBoard player1 = new Gameboard();

しかし、そこからどこへ行くのですか?こんな感じでしょうか。

player1.ship ship1 = new player1.ship();

私の腸はそれが非常に間違っていると私に言っています、そして私は何をすべきか分かりません. 助けてくれてありがとう!

4

4 に答える 4

3

これは簡単に実行できます。

public class GameBoard {
int columnCount = 7;
int rowCount = 7;
int spaceCount = rowCount*columnCount;
ship s;

}


public class ship {
    private String name;
    private void setName(String newName) {
        name = newName;
    }
}

その後

GameBoard gb = new GameBoard();
gb.s = new ship();
于 2013-07-08T02:12:06.150 に答える
0

外部クラス内から新しい船をインスタンス化する方法を意味していますか? その場合、単に書くことができます

ship t = new ship();
于 2013-07-08T02:10:56.517 に答える
0

外部クラスから船をインスタンス化する場合は、次のことを行う必要があります。

  1. 船のクラスを静的にします。
  2. 船のクラスを公開します。

次のように:

public class GameBoard {
    int columnCount = 7;
    int rowCount = 7;
    int spaceCount = rowCount*columnCount;

    public static class ship {
        private String name;
        private void setName(String newName) {
            name = newName;
        }
    }
}

次に、次のことができます。

 ship1 = new GameBoard.ship();
于 2013-07-08T02:12:14.007 に答える
0

Ship はプライベート クラスなので、GameBoard によってのみ変更できます。次の方法で船を作成できます。

public class GameBoard {
int columnCount = 7;
int rowCount = 7;
int spaceCount = rowCount*columnCount;
ship _ship = new ship();

private class ship {
    private String name;
    private void setName(String newName) {
        name = newName;
    }
}
public ship getShip(){return _ship);

経由で名前を設定する必要がありますplayer.getShip().setName("USS SOMETHING")

またはさらに良い

public class GameBoard {
    int columnCount = 7;
    int rowCount = 7;
    int spaceCount = rowCount*columnCount;
    ship _ship;

    public GameBoard(String shipName){
       _ship = new ship();
       _ship.setName(shipName);
    }

    private class ship {
        private String name;
        private void setName(String newName) {
            name = newName;
        }
    }

GameBoard を作成するときに船の名前を設定します。GameBoard player1 = new GameBoard("USS SOMETHING")

于 2013-07-08T02:16:44.820 に答える