我对学校作业有点困难,长话短说我在方法中声明了两个局部变量,我需要在方法之外访问这些变量:
public String convertHeightToFeetInches(String input){
int height = Integer.parseInt(input);
int resultFeet = height / IN_PER_FOOT;
int resultInches = height % IN_PER_FOOT;
Math.floor(resultInches);
return input;
}
我必须以不同的方法打印以下字符串:
System.out.println("Height: " + resultFeet + " feet " + resultInches + " inches");
有什么建议吗?
谢谢。
答案 0 :(得分:1)
您无法访问定义范围之外的局部变量。您需要通过方法
更改返回的内容首先定义一个容器类来保存结果......
public class FeetInch {
private int feet;
private int inches;
public FeetInch(int feet, int inches) {
this.feet = feet;
this.inches = inches;
}
public int getFeet() {
return feet;
}
public int getInches() {
return inches;
}
}
然后修改方法以创建并返回它......
public FeetInch convertHeightToFeetInches(String input) {
int height = Integer.parseInt(input);
int resultFeet = height / IN_PER_FOOT;
int resultInches = height % IN_PER_FOOT;
Math.floor(resultInches);
return new FeetInch(resultFeet, resultInches);
}
答案 1 :(得分:0)
您无法从方法B中的方法A访问本地变量。这就是为什么它们是本地的。 看看:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/variables.html
因此,局部变量仅对它们的方法可见 宣布;他们无法从班上其他人那里获得。
我建议使用@MadProgrammer编写的解决方案 - 创建包含feet
和inches
的类。
答案 2 :(得分:0)
您需要创建一个保存结果的共享变量,或者将结果封装在单个对象中,然后返回调用方法,它可能是类result
public class Result {
public final int resultFeet;
public final int resultInches;
public Result(int resultFeet, int resultInches) {
this.resultFeet = resultFeet;
this.resultInches = resultInches;
}
}
现在,你做了一个结果,
public Result convertHeightToFeetInches(String input){
int height = Integer.parseInt(input);
int resultFeet = height / IN_PER_FOOT;
int resultInches = height % IN_PER_FOOT;
Math.floor(resultInches);
return new Result(resultFeet, resultInches);
}
将此结果用于其他功能以打印结果。
Result result = convertHeightToFeetInches(<your_input>);
System.out.println("Height: " + result.resultFeet + " feet " + result.resultInches + " inches")