Java 2D数组仍然为空
我在类板中有一个2D数组来承载Ship类型的对象。Board类的构造函数使用ship对象启动2D数组,但是当我签出它时,它仍然保持为空Java 2D数组仍然为空,java,object,multidimensional-array,Java,Object,Multidimensional Array,我在类板中有一个2D数组来承载Ship类型的对象。Board类的构造函数使用ship对象启动2D数组,但是当我签出它时,它仍然保持为空 public class Ship{ private int tons; // 1 element in 2d array public Ship(){ this.tons=1; } public Ship(int t){ this.tons=t; } public int
public class Ship{
private int tons; // 1 element in 2d array
public Ship(){
this.tons=1;
}
public Ship(int t){
this.tons=t;
}
public int getTons(){
return this.tons;
}
public void setTons(){
this.tons = 1;
}
}
import java.util.Random;
公共班级委员会{
私人战列舰[];
私有随机rnd=新随机();
公共委员会(){
//具有空值的安装板
战列舰[][]=新船[5][5];
//初始化
对于(int r=0;r<5;r++)
对于(int c=0;c<5;C++)
战列舰[r][c]=新船();
}
}
您在构造函数中声明了一个附加变量战舰。使用已在类中定义的类成员变量
private Ship battleShip[][];//<------------- use this
私人战舰[]// 这样做:
public Board(){
//setup board with null values
Ship battleShip[][] = new Ship[5][5];
对类成员战舰进行阴影处理,并在类中保留为未初始化字段
public Board(){
//setup board with null values
battleShip = new Ship[5][5]; //<---------- now member variable is initialed
// initialize
for (int r=0; r < 5; r++ )
for (int c=0; c < 5; c++ )
battleShip[r][c]= new Ship();
}
public Board(){
//setup board with null values
Ship battleShip[][] = new Ship[5][5];