2015-09-23 2 views
-2

Я пытаюсь установить мое истинное и ложное возвращение из моего метода в другом классе в качестве условного выражения для оператора if. Мы создаем генератор паролей. Установлен пароль. Если пользователь вводит changeit в качестве исходного пароля, то новый пароль, который пользователь хотел бы ввести, станет паролем. если нет, то пароль пользователя останется таким же, как и исходный пароль. Я создал метод, который вернул true или false, если oldPassword равен паролю. иначе он вернет false. Мне нужно это возвращение, чтобы вернуться в мой основной файл и использоваться в выражении if. Пожалуйста, помогите мне! Я отправляю мои если заявления (которые находятся в отдельном файле с именем Main.java) и мой метод булево (которые находятся в отдельном файле с именем Password.java) все мой код работает для моих если заявления, за исключениемЕсли оператор на основе логического значения

//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

Я не понимаю вашего вопроса. –

+1

Это довольно искаженное. Я не понимаю этот вопрос, и код запутывает чтение - кажется, это отдельные сегменты кода, но способ его форматирования делает его похожим на смежный сегмент. Пожалуйста, исправьте свой вопрос, чтобы уточнить, в чем проблема, помимо исправления кода. – tnw

+0

Мне нужно использовать возвращаемое значение из моего логического метода в моем истинном и ложном заявлении. Извините, что я действительно борется с этим и его завтрашним днем ​​ – kkkkkkkkkkkkkkkkkkkkkkk

ответ

2

вместо if (checkPassword == true) вам нужно:

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

} 

checkPassword как логическая переменная не доступна из основного класса, даже если он был быть установлен в вашем Password классе (и это не так).

Когда вы вызываете passwordObject.checkPassword(oldPassword);, то, что вы делаете, говорит, что этот метод запускается в классе passwordObject, и это так. Но результат этого метода (true/false) не сохраняется - он должен быть возвращен в любой класс, вызывающий метод (в данном случае метод main).

Чтобы сломать выше решение, это то же самое, как это сделать:

boolean passwordCheckResult = passwordObject.checkPassword(oldPassword); 
//above line stores whatever checkPassword returns, into passwordCheckResult 

if(passwordCheckResult == true){ 
    //more code 
} 
+0

это не сработало. и это не в основном классе. он находится в отдельном классе. я просто положил их друг другу – kkkkkkkkkkkkkkkkkkkkkkk

+0

@Angela Тогда вам нужно будет уточнить. Если 'checkPassword' находится в отдельном классе (к какому классу принадлежит' passwordObject'), это должно работать нормально. – CubeJockey

+0

Нет, это не сработало, потому что программа запустила проверку пароля дважды, делая возврат ложным. Должен ли я показать вам оба моих файла? – kkkkkkkkkkkkkkkkkkkkkkk

Смежные вопросы