Java 创建新的子类实例
我是Java新手,作为一个创建战舰游戏的练习。显然,有两个游戏板(每个玩家一个),每个板将分配三艘船。然后,我的想法是创建一个“GameBoard”类,其中包含一个“ship”类,这样我就可以创建新的船,这些船是它们将放置在上面的板的实例。以下是我目前掌握的情况:Java 创建新的子类实例,java,subclass,Java,Subclass,我是Java新手,作为一个创建战舰游戏的练习。显然,有两个游戏板(每个玩家一个),每个板将分配三艘船。然后,我的想法是创建一个“GameBoard”类,其中包含一个“ship”类,这样我就可以创建新的船,这些船是它们将放置在上面的板的实例。以下是我目前掌握的情况: public class GameBoard { int columnCount = 7; int rowCount = 7; int spaceCount = rowCount*columnCount;
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();
我的直觉告诉我这是非常错误的,我只是不知道该怎么办。谢谢你的帮助 你的意思是如何从外部类中实例化一艘新船?在这种情况下,你可以简单地写
ship t = new ship();
你的意思是如何从外部类中实例化一艘新船?在这种情况下,你可以简单地写
ship t = new ship();
你可以简单地做到这一点
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();
你可以简单地做到这一点
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();
如果您想从外部类实例一艘船,您应该:
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();
如果您想从外部类实例一艘船,您应该:
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();
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 player1=new GameBoard(“USS SOMETHING”)
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 player1=new GameBoard(“USS SOMETHING”)
这是一个开始,但如何将其与“player1”GameBoard关联?这是一个开始,但如何将其与“player1”GameBoard关联?完美。现在我的问题是,如何才能无限量地增加潜在的船只?现在,我必须预先定义我将要添加船只的位置,但是如果我不知道我想要多少,并且希望能够随意添加船只,那该怎么办?非常感谢你的帮助!在你的gameboard类中保留一个船的数组或列表,你可以添加任意数量的船:保留列表s;在gameboard定义中添加新的ship作为gb.s=new List();gb.s.add(新船());好极了非常感谢你的帮助。如果你不介意的话,为什么在我已经在GameBoard类中定义了一个列表之后,还要声明一个新的列表呢;在这一行中,您正在声明列表,但在写入新列表()之前,此列表不会初始化;这只是列表的初始化,然后您可以向列表中添加任意数量的对象。除了.get(index)之外,还有什么更方便的方法来操作它吗?再次感谢你,顺便说一句,你帮了我的大忙!完美的现在我的问题是,如何才能无限量地增加潜在的船只?现在,我必须预先定义我将要添加船只的位置,但是如果我不知道我想要多少,并且希望能够随意添加船只,那该怎么办?非常感谢你的帮助!在你的gameboard类中保留一个船的数组或列表,你可以添加任意数量的船:保留列表s;在gameboard定义中添加新的ship作为gb.s=new List();gb.s.add(新船());好极了非常感谢你的帮助。如果你不介意的话,为什么在我已经在GameBoard类中定义了一个列表之后,还要声明一个新的列表呢;在这一行中,您正在声明列表,但在写入新列表()之前,此列表不会初始化;这只是列表的初始化,然后您可以向列表中添加任意数量的对象。除了.get(index)之外,还有什么更方便的方法来操作它吗?再次感谢你,顺便说一句,你帮了我的大忙!