Java 当对象未给定时,如何从另一个类调用getter?
对于下面的代码,我有一个带有相应getter的构造函数谜题Java 当对象未给定时,如何从另一个类调用getter?,java,class,static,undefined,getter,Java,Class,Static,Undefined,Getter,对于下面的代码,我有一个带有相应getter的构造函数谜题 public class Puzzle { private int [][] array; public Puzzle(int[][] array) { this.array = array; } public int[][] getArray() { return this.array; } } 在另一个类中,我想要一个非静态的方法来解决这个难题。但是我需要使用
public class Puzzle {
private int [][] array;
public Puzzle(int[][] array) {
this.array = array;
}
public int[][] getArray() {
return this.array;
}
}
在另一个类中,我想要一个非静态的方法来解决这个难题。但是我需要使用getter来获取2D数组
public class Solver {
public void solve() {
int[][] a1 = getArray();
}
//...More Code here ...
}
我希望它能被解决,这样在一个主方法中它就可以被这样调用
puzzle.solve();
但是,据说getArray()方法在类求解器中未定义。有什么方法可以解决这个问题而不必接受使用solve(puzzle)解决的难题吗?您必须创建类的实例:
public class Solver {
public void solve() {
int[][] a2 = { {1, 2, 3}, {1, 2, 3} };
Puzzle puzzle = new Puzzle(a2);
int[][] a1 = puzzle.getArray();
}
//...More Code here ...
}
下面的代码回答了您的问题,但没有多大意义。你得问问自己,我想从哪个对象得到一个数组?你的代码中有这样的对象吗?然后,您必须将此对象传递给solve方法,并对该对象调用getArray()
public class Solver {
public void solve(Puzzle puzzle) {
int[][] a1 = puzzle.getArray();
}
//...More Code here ...
}
您必须创建对象,以便使用类的方法。将谜题交给解算器。或者是解谜者。但是,除非有一个实例,并在该实例上调用它们,否则不能调用类的实例方法。