这是我的代码:
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()
中重新声明?
答案 0 :(得分:2)
如果您需要使用和修改相同的"变量"在两种不同的方法中,它们不能是局部变量,它们是类的实例属性。
或者,您可以将它们作为参数传递给viewFlightOrigin()
,只需记住,在方法返回{后,对viewFlightOrigin()
内的变量的任何修改都将不可见{1}}。
答案 1 :(得分:1)
如果您不需要修改变量,最简单的方法是将其作为参数传递给函数:
viewFlightOrigin(newOrigin);
public void viewFlightOrigin(String option) {
// ...
}
如果需要修改变量,可以从方法中返回新值:
newOrigin = viewFlightOrigin(origin);
public String viewFlightOrigin(String option) {
// ...
}
答案 2 :(得分:0)
1.
public void viewFlight()
{
.....
viewFlightOrigin(option);
....
}
2.declare a instance field then it's not a local variable
答案 3 :(得分:0)
使用参数:
public void viewFlight() {
int select;
String option;
viewFlightOrigin(select, option);
}
public void viewFlightOrigin(int select, String option) {...}
答案 4 :(得分:0)
只有不同方法的实例变量可用。局部变量具有范围,直到该方法不在方法的一侧。