无法在同一类的方法中访问实例变量?

时间:2016-06-24 14:07:31

标签: java class object methods

我无法访问变量' InvalidAlready'在方法.isLatinSquare()的内部,我不明白为什么:/

代码的一部分:

public class LatinSquare {
    private boolean invalidAlready = false;

    //Setter and Getters for invalidAlready
    public void setInvalid(){
        invalidAlready = true;
    }

    public boolean testInvalid(){
        return invalidAlready;
    }

    //Testing method to show whether LatinSquare is valid
    public boolean isLatinSquare(int[][] array) {
         if (square.getInvalid() = true) {
             return false;
         }
    }

    public static void main(String[] args) {
        //Main Code Here
        LatinSquare square= new LatinSquare();

我遇到的主要问题是isLatinSquare()方法中的if语句。在if语句中有一个错误,指出:无法在基本类型boolean上调用testInvalid()

在main方法中,我能够对if语句使用它,以便测试InvalidAlready对象是真还是假。

对不起我对java有些新鲜:/感谢任何帮助! 提前谢谢!

3 个答案:

答案 0 :(得分:0)

InvalidAlready是原始的boolean类型,因此没有定义getInvalid()方法:

public boolean isLatinSquare(int[][] array){

     if (InvalidAlready.getInvalid() = true) // this is wrong
     {
     ...         
     }
}

你可以这样做:

public boolean isLatinSquare(int[][] array){

     if (InvalidAlready)
     {
        // do stuff
     }
}

答案 1 :(得分:0)

试试这个版本:

if (invalidAlready){
    return false;
}

InvalidAlready是一个布尔基元,它没有方法,可以是true或false;

答案 2 :(得分:0)

您的LatinSquare类没有getInvalid()方法...... 您应该使用名为testInvalid()的方法,或者将其重命名为与getInvalid()

对应