#java #if-statement #methods #switch-statement
Вопрос:
в первом методе (addFlight) есть переменная под названием (limitOfPassengers), которая просит пользователя ввести число для ограничения, а затем сохранить его в переменной. затем я хочу использовать этот ввод в другом методе, называемом (addPassengerToTheFlight), с оператором if, чтобы проверить, не превышают ли добавленные пассажиры заданное предельное число.
если я использую параметр во втором методе, в методе переключения возникнет ошибка. Что мне делать?
Код слишком длинный, но вот проблема с кодами
switch (choice) { case 1: { airway.addFlight(); break; } case 2: { System.out.println("ttttPlease Enter Detail of Passenger"); airway.addPassengersToFlight(); break; } // the first method public void addFlight() { int limitOfpassengers; System.out.print("Enter passenger limit: "); limitOfpassengers=ss.nextInt(); } //the second method public void addPassengersToFlight() { if (flight.getPassengerLimit() lt;= limitOfpassengers) { flight.addPassengers(passengers); System.out.println("New Passenger is Added!"); } else { System.out.println("!!!No More Space for Passenger!!!"); } }
Комментарии:
1. Нам нужно увидеть код, чтобы понять, в чем проблема. Пожалуйста, напишите, с чем у вас возникли проблемы.
2. Некоторый код был бы полезен, как говорит markspace. Но, похоже, вам может просто понадобиться поле в вашем классе. Покажите, что у вас есть и где вы застряли.
3. Похоже, вам следует использовать параметр во втором методе. Какую ошибку вы получаете в своем коммутаторе, и можете ли вы показать нам метод, чтобы мы могли дать совет о том, как ее исправить?
4. Всегда делитесь кодом, не объясняйте его 😉
5. @markspace я добавил несколько кодов
Ответ №1:
Есть ли способ использовать переменную в другом методе без использования параметра?
ДА. Вот один из способов:
public class MyClass { private int myVar; public MyClass() { myVar = 0; } public void incrementMyVar() { myVar ; } public int getMyVar() { return myVar; } }
Конкретная проблема, с которой вы столкнулись в предоставленном коде, заключается в том, что область действия limitOfPassengers
ограничена addFlight()
методом. Найдите «область действия переменной java» для получения более подробной информации.
Комментарии:
1. Хотя технически это правильно, я не думаю, что этот ответ-лучшее, что можно показать новичку, который учится передавать параметры между методами. В противном случае они в конечном итоге научатся кодировать в стиле, где все хранится в полях, и это создает огромные проблемы с ремонтопригодностью, как только класс усложняется.