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

如果您需要在两个不同的方法中使用和修改相同的“变量”,那么它们不能是局部变量,它们是类的实例属性

或者,您可以将它们作为参数传递给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 回答