我试图在另一个类中将我的方法设置为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");
}
答案 0 :(得分:2)
取代您需要的if (checkPassword == true)
:
if(passwordObject.checkPassword(oldPassword)){
//more code
}
checkPassword
作为布尔变量是不可从主类访问的,即使它是在Password
类中设置的(并且它不是)。
当您致电passwordObject.checkPassword(oldPassword);
时,您所做的就是告诉该方法在passwordObject
的课程中运行,而且确实如此。但是该方法的结果(真/假)没有被保存 - 它意味着返回到任何调用该方法的类(在这种情况下,{ {1}}方法)。
要打破上述解决方案,它与执行此操作相同:
main