我想将播放器的数据和字段的数据存储在两个对象数组中。问题是我需要在不同的类中使用它们。在我最初创建它不是问题的类中,但是当我尝试在另一个类中调用它时,它会抛出“board[i]
无法解析为变量”。
我写的代码有点类似于:
class Field {
int something;
int another;
public void setMethod(int something){
this.something = something;
}
//etc.
}
class Board {
public static Field[] board = new Field[60];
public void BoardFiller(){
for(int i = 0; i < board.length; i++){
board[i] = new Field(/*construct*/);
//etc.
}
}
}
class Gameplay {
public boolean Attackable() {
boolean atk = false;
//stuff
int something = board[i].getMethod();
//more stuff
return atk;
}
}
等等。我必须使用Field数据来检查它是否可以访问,在I / O部分的转弯中使用它。 问题与播放器数据相同。
答案 0 :(得分:0)
第1步:从static
变量
board
修饰符
第2步:将public Board board = new Board();
字段添加到Gameplay
类
第3步:使用board.board[...]
访问Gameplay
类
答案 1 :(得分:0)
就像你使用新的Field()创建了一个场对象一样,你需要在你的游戏类中创建一个棋盘对象才能使用那里的方法。
Board myBoard = new Board();
答案 2 :(得分:0)
您尚未在board
方法或Attackable
类的范围内定义Gameplay
变量。要访问board
变量,您必须通过执行Field.Board.board
来访问它。而不只是board
。
答案 3 :(得分:0)
在GamePlay课程中,你必须循环在棋盘上。类似于(Field f:new Board()。board)//做某事
答案 4 :(得分:0)
代码是完全错误的,它甚至不会编译你不允许创建 内部类中外部类的静态数组
内部类是一个非显式或隐式的嵌套类 声明静态。内部类可能不会声明静态初始化器 或成员接口。内部类可能不会声明静态 成员,除非它们是编译时常量字段
你应该得到一个编译错误,你可以通过使你的字段类静态来解决这个问题。