0

我是 Java 新手,并且作为创建战舰游戏的练习。显然,有两个游戏板(每个玩家一个),每个板将分配三艘船。那么,我的想法是创建一个“GameBoard”类,其中包含一个“ship”类,这样我就可以创建新的船,这些船是它们将被放置在上面的板的实例。这是我到目前为止所拥有的:

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 回答