![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
java数组调用的问题
classChessboard{finalintBOARD_SIZE=22;String[][]board;publicvoidinitBoard(){board=new...
class Chessboard{
final int BOARD_SIZE=22;
String[][] board;
public void initBoard(){
board=new String[BOARD_SIZE][BOARD_SIZE];
for(int i=0;i<BOARD_SIZE;i++){
for(int j=0;j<BOARD_SIZE;j++){
board[i][j]="十";
}
}
}
public void printboard(){
for(int i=0;i<BOARD_SIZE;i++){
for(int j=0;j<BOARD_SIZE;j++){
System.out.print(board[i][j]);
}
System.out.println();
}
}
public void setBoard(int posX,int posY,String chessman){
this.board[posX][posY]=chessman;
}
public String[][] getBoard(){
return this.board;
}
}
这个类里定义了一个数组,我在mian方法里调用了,并且改变了数值。然后我在另一个类里
Chessboard chessboard=new Chessboard();
String[][] board = chessboard.getBoard();
调用数组时发现是空的,用的话会报错。我想问一下我应该怎么在这个类里调用这个被改变过数值的数组。java初学,哪里形容的不太对请见谅。希望大神们帮帮忙, 展开
final int BOARD_SIZE=22;
String[][] board;
public void initBoard(){
board=new String[BOARD_SIZE][BOARD_SIZE];
for(int i=0;i<BOARD_SIZE;i++){
for(int j=0;j<BOARD_SIZE;j++){
board[i][j]="十";
}
}
}
public void printboard(){
for(int i=0;i<BOARD_SIZE;i++){
for(int j=0;j<BOARD_SIZE;j++){
System.out.print(board[i][j]);
}
System.out.println();
}
}
public void setBoard(int posX,int posY,String chessman){
this.board[posX][posY]=chessman;
}
public String[][] getBoard(){
return this.board;
}
}
这个类里定义了一个数组,我在mian方法里调用了,并且改变了数值。然后我在另一个类里
Chessboard chessboard=new Chessboard();
String[][] board = chessboard.getBoard();
调用数组时发现是空的,用的话会报错。我想问一下我应该怎么在这个类里调用这个被改变过数值的数组。java初学,哪里形容的不太对请见谅。希望大神们帮帮忙, 展开
2个回答
展开全部
public class Chessboard {
final int BOARD_SIZE = 12;
static String[][] board;
public void initBoard() {
board = new String[BOARD_SIZE][BOARD_SIZE];
for (int i = 0; i < BOARD_SIZE; i++) {
for (int j = 0; j < BOARD_SIZE; j++) {
board[i][j] = "十";
}
}
}
public void printboard() {
for (int i = 0; i < BOARD_SIZE; i++) {
for (int j = 0; j < BOARD_SIZE; j++) {
System.out.print(board[i][j]);
}
System.out.println();
}
}
public void setBoard(int posX, int posY, String chessman) {
this.board[posX][posY] = chessman;
}
public String[][] getBoard() {
return this.board;
}
public static void main(String[] args) {
Chessboard chessboard = new Chessboard();
chessboard.initBoard();
chessboard.printboard();
System.out.println();
chessboard.setBoard(1, 1, "田");
chessboard.printboard();
System.out.println();
Chessboard chessboard2 = new Chessboard();
chessboard2.printboard();
}
}
使用static即可,为了调试方便,这里两个Chessboard放在了同一个main函数中,我估计你也不能同时运行两个main函数
更多追问追答
追问
还是报这个错了,,,应该怎么弄
Exception in thread "main" java.lang.NullPointerException
追答
不是说了么,你这个不能放在两个main函数中运行,一个main函数执行完了,生命周期什么的都结束了,无论什么变量都不会保存,你直接运行我那个程序就没有错误。
展开全部
首先应该调用初始化方法initBoard()
Chessboard chessboard=new Chessboard();
chessboard.initBoard();
String[][] board = chessboard.getBoard();
或者把数组的初始化放到构造函数中去
Chessboard chessboard=new Chessboard();
chessboard.initBoard();
String[][] board = chessboard.getBoard();
或者把数组的初始化放到构造函数中去
追问
从新调用初始化函数。。那我在main里改变了的数值是不是在String[][] board = chessboard.getBoard();里就没了,变成了初始的数组了
追答
初始化之后随便设置呀
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询