2

これは私のコードです:

public void viewFlight() {
  int select;
  String option;
  String newOrigin = null;
  viewFlightOrigin();
}

public void viewFlightOrigin() {
  option = console.nextLine();
  switch (select) {
    case 1:
      System.out.println("=======================================");
      System.out.println("city of origin: Melbourne");
      System.out.println("=======================================");
      newOrigin = "Melbourne";
      break;

    // ...
  }
}

フィールドで変数を宣言したりviewFlight()、.viewFlightOrigin()viewFlightOrigin()

4

5 に答える 5

2

2つの異なるメソッドで同じ「変数」を使用および変更する必要がある場合、それらはローカル変数であってはならず、クラスのインスタンス属性です。

または、それらをパラメータとしてに渡すこともできます。メソッドがに戻った後は、viewFlightOrigin()内部の変数への変更は表示viewFlightOrigin()されないviewFlight()ことに注意してください。

于 2012-05-09T04:30:32.270 に答える
1

変数を変更する必要がない場合に行う最も簡単な方法は、変数をパラメーターとして関数に渡すことです。

viewFlightOrigin(newOrigin);

public void viewFlightOrigin(String option) {
    // ...
}

変数を変更する必要がある場合は、メソッドから新しい値を返すことができます。

newOrigin = viewFlightOrigin(origin);

public String viewFlightOrigin(String option) {
    // ...
}
于 2012-05-09T04:32:45.570 に答える
0
1.
public void viewFlight()
{
  .....
  viewFlightOrigin(option);
  ....
}

2.declare a instance field then it's not a local variable
于 2012-05-09T04:34:32.370 に答える
0

パラメータの使用:

public void viewFlight() {
    int select;
    String option;

    viewFlightOrigin(select, option);
}

public void viewFlightOrigin(int select, String option) {...}
于 2012-05-09T04:35:39.537 に答える
0

さまざまなメソッドで使用できるのはインスタンス変数のみです。ローカル変数は、メソッドの外側ではなく、そのメソッドまでスコープを持っています。

于 2012-05-09T05:14:25.300 に答える