есть ли способ использовать переменную в другом методе без использования параметра?

#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. Хотя технически это правильно, я не думаю, что этот ответ-лучшее, что можно показать новичку, который учится передавать параметры между методами. В противном случае они в конечном итоге научатся кодировать в стиле, где все хранится в полях, и это создает огромные проблемы с ремонтопригодностью, как только класс усложняется.