从另一个类

时间:2018-03-19 14:49:26

标签: java class variables

我有一个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数组中的值的问题。非常感谢任何帮助或提示!

1 个答案:

答案 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