if语句基于布尔值

时间:2015-09-23 16:15:42

标签: java if-statement methods constructor boolean

我试图在另一个类中将我的方法设置为true和false,作为if语句的条件。我们正在创建一个密码生成器。设置密码是changit。如果用户输入changeit作为原始密码,则用户想要输入的新密码将成为密码。如果没有,那么用户密码将保持与原始密码相同。如果oldPassword等于password,我创建了一个返回true或false的方法。否则它将返回false。我需要返回我的主文件并在if语句中使用。请帮我!我发布我的if语句(在一个名为Main.java的单独文件中)和我的布尔方法(在一个名为Password.java的单独文件中)我的所有代码都工作,除了我的if语句

//My method in anotherfile called Password.java

public boolean checkPassword(String oldPassword) {

    if (password.equals(oldPassword)) {
        System.out.println("True");
        return true;
    } else {
        System.out.println("False");
        return false;
    }
}

//my constructor 

passwordObject.checkPassword(oldPassword);

//my if statement for main.java to show if i was able to successfully change my password.
if (checkPassword == true) {
    System.out.println("Your password change was successful");
} else {
    System.out.println("Your password change was unsucessesful");
}

1 个答案:

答案 0 :(得分:2)

取代您需要的if (checkPassword == true)

if(passwordObject.checkPassword(oldPassword)){
    //more code

}

checkPassword作为布尔变量是不可从主类访问的,即使它是在Password类中设置的(并且它不是)。

当您致电passwordObject.checkPassword(oldPassword);时,您所做的就是告诉该方法在passwordObject的课程中运行,而且确实如此。但是该方法的结果(真/假)没有被保存 - 它意味着返回到任何调用该方法的类(在这种情况下,{ {1}}方法)。

要打破上述解决方案,它与执行此操作相同:

main