这看起来非常简单,但我找不到在我正在制作的程序中实现此功能的方法。我有两个类,在其中一个类中,我创建了一个数组,我想在另一个类中访问该数组。
这是主类...
public class main {
public static void main(String[] args) {
boolean[] pixelValues;
pixelValues = [99];
}
}
当然,我省略了很多,但这是我遇到问题的代码。还有第二个类,有点像这样......
public class pixelAssign {
public pixelAssign(posX, posY) {
main.pixelValues[ {some number} ] = {some value};
}
}
我的问题是,我无法从我在第二段代码中创建的函数访问我在主类中创建的 PixelValues 数组。我在第二位代码中遇到错误,指出 (1) 表示无法找到该变量,以及 (2) 我缺少标识符(?)。这里的代码有点未完成,但是第二位的函数稍后会从主类中调用。
任何帮助将不胜感激!
最佳答案
推杆Paul's和 SANM2009's一起回答:
你应该:
public class main {
static int[] pixelValues;
public static void main(String[] args) {
pixelValues = [99];
}
}
public class pixelAssign {
public pixelAssign(posX, posY) {
main.pixelValues[0] = 98;
}
}
如果并且只有 IF 类 main 和 PixelAssign 位于同一个包中,那应该可以工作!如果不是,pixelValues 将不可见。
如果您想坚持 Java 良好实践:
- 类的首字母始终大写,因此 Main 和 PixelAssign
- 实例化类并使用对象通常是一种很好的做法。否则你必须使用
static
。 将 PixelValues 设置为
private
或protected
并创建方法:public class Main { private int[] pixelValues; public Main() { pixelValues = [99]; } public void setPixelValue(int position, int value) { pixelValues[position] = value; } public static void main(String[] args) { Main main = new Main(); new PixelAssign(main); } } public class PixelAssign { public PixelAssign(Main main, posX, posY) { main.setPixelValue(0, 98); } }
关于java - 使用另一个类的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48912996/