如何在java中使用变量从类里面的方法
问题描述:
所以我必须为任务编写一个扫雷游戏。如果我为董事会制作了一个课程,其中包含两个2D数组,一个用于棋盘值,另一个用于确定用户是否已经点击或未点击。我用两个2D数组的参数编写了这些方法。我将如何在主类中调用这些数组?如何在java中使用变量从类里面的方法
public class Board {
int x;
int y;
public char[][] board;
public char[][] reveal;
Board(int x, int y){
board = new char[x][y];
reveal = new boolean[x][y];
}
}
public class Mine{
public static void main(String[] args){
Board gameboard;
gameboard = new Board(5, 5);
???
Board.printBoard(board, reveal);
}
}
public void printBoard(char[][] board, boolean[][] test){
for(int i=0; i<=board.length; i+=1){
for(int j=0; j<board[i].length; j+=1){
if (test[i][j]==true){
System.out.print(board[i][j]);
}
else {
System.out.print('?');
}
}
System.out.println();
}
}
答
我怎么会叫我的主类的阵列?
您不'调用'数组。你调用方法。如果你想访问一个类的实例变量,你需要提供访问方法,即'get'和'set'实例变量的方法。
答
既然你宣布board
和reveal
属性为公共你可以访问使用gameboard.board
和gameboard.reveal
它们的值。
但是,这是一个非常非常糟糕的方法。 Encapsulation。
所以,你应该申报的getter和setter每个类属性x
,并访问其值:objectName.getX()
答
后,你在你的主要方法实例化你的板类的实例,你会(例如)以下方式访问它们:
Board gameboard = new Board(5,5);
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
System.out.print(gameboard.board[i][j]);
}
}
等
使用私有成员和存取方法是一个更好的办法一个,但肯定不是一个要求。
答
您只需键入gameboard.board即可获取存储在Board对象中的“board”。
答
您可以像使用以下代码一样轻松地访问其他人的建议。
System.out.print(gameboard.board[i][j]);
你可以像许多人建议的那样合并封装。
但是,我还建议实现它更简单,并且如果您被允许进行任务,则可以在一个类中实现。
这与少代码一样有效,IMO同样容易理解。
public class Board {
private int x;
private int y;
private char[][] board;
private boolean[][] reveal;
public static void main(String[] args) {
Board gameboard = new Board(5, 5);
gameboard.printBoard();
}
public Board(int x, int y) {
this.x = x;
this.y = y;
board = new char[x][y];
reveal = new boolean[x][y];
}
public void printBoard() {
for (int i = 0; i < board.length; i += 1) {
for (int j = 0; j < board[i].length; j += 1) {
if (reveal[i][j] == true) {
System.out.print(board[i][j]);
} else {
System.out.print('?');
}
}
System.out.println();
}
}
public class Mine {
}
}
建议使用访问器方法,但不是必需的。由于他的数组是公开的(未推荐),他*可以*通过实例简单地引用它们。 – 2013-04-20 02:00:52
我试过这个......不知道如何在这里设置获取方法 public char [] [] getBoard(Board board){ \t \t return char [] [] board; \t} – user2259610 2013-04-20 02:04:26
我将如何通过实例引用它? – user2259610 2013-04-20 02:05:40