我有一个Java项目,在一个类中,一个数组被初始化,就像这样。
public class pixel {
public boolean[] pixelAvailability = new boolean[100];
}
在我的主课程中,运行了另一个我创建的类的方法。该方法的代码如下所示。
public void walls() {
for (int i = 1; i <= 10; i++) {
// This is the part I need help with!
}
}
此方法的用途是更改pixelAvailability数组中某些条目的值。在注释所在的空间中,应该是访问数组的一行,并且将更改具有相同值的数组的索引&#39; i&#39;为真。但是,我不确定我在那里写了什么,以便更改在像素类的实例中存在的pixelAvailability数组的值,该像素类未在&#34;壁&#34;阶级本身。主类只创建两个类的两个实例,并且这样编写。
public class main {
public static void main(String[] args) {
pixel pixelObj = new pixel();
wall wallObj = new wall();
walls();
}
}
虽然我可以为&#34;墙&#34;编写代码。在主要方法中,它占用了大量的空间,使它有点麻烦,似乎没必要。
有一个与此特定问题无关的第四类,但也会遇到访问pixelAvailability数组中的值的问题。非常感谢任何帮助或提示!
答案 0 :(得分:0)
您需要将Pixel对象作为参数传递,首先更改wall方法以接收Pixel as param
public void walls(Pixel pixel) {
for (int i = 1; i >= 10; i++) {
// here you can do whatever you want like pixel.pixelAvailability[i] = false;
}
}
然后在您的主要内容中,您将Pixel作为参数传递
public class main {
public static void main(String[] args) {
pixel pixelObj = new pixel();
wall wallObj = new wall();
walls(pixelObj); //here you do the magic
}
}
基本上,您正在更改wall方法以接受Pixel实例作为参数。所以你可以在你的方法中访问它。
现在,无论何时调用wall方法,都可以将任何Pixel对象传递给它。
有关详细信息,请查看此链接
https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html