如何在另一种方法中使用main方法中的对象

时间:2018-05-09 15:26:33

标签: java class methods main

我正在尝试在我的项目的RandomGrid rGrid方法中使用compareGrids,但我似乎无法弄清楚如何这样做。我原来在main方法之外有RandomGrid构造函数,但每次尝试运行它时都会出现堆栈溢出错误。我有一个非常类似于这个类的类,在main方法之外有一个ButtonGrid构造函数,它工作正常。谢谢你的帮助!

public static void main(String[] args) {
    new ButtonGrid(WIDTH, LENGTH);
    RandomGrid rGrid = new RandomGrid(WIDTH, LENGTH);

}
public int compareGrids() {
    String[] args = {};
    ButtonGrid.main(args);

    int numCorrect = 0;
    for (int i = 0; i < WIDTH; i++) {
        for (int j = 0; j < LENGTH; j++) {
         if (grid[i][j].getBackground() == ButtonGrid.main(rGrid).grid[i][j].getBackground()) {
                numCorrect++;
            }
        }
    }
    System.out.println(numCorrect);
    return numCorrect;
} 

2 个答案:

答案 0 :(得分:0)

简单回答: 使compareGrids()静态并添加参数

public static int compareGrids(Grid grid1, Grid grid2) {
 ...
}

这是一个入门级问题,您可能需要参考一个简单的java教程来理解基本的类元素和修饰符

答案 1 :(得分:0)

要在compareGrids中使用rGrid,它必须是类级变量。 宣布 RandomGrid rGrid = new RandomGrid(WI​​DTH,LENGTH); 外面的主要。 它应该解决你的问题。 一旦主要方法完成,目前rgrid的范围就会结束

请粘贴您提到的堆栈溢出错误