将变量传递给main方法java
Posted
技术标签:
【中文标题】将变量传递给main方法java【英文标题】:pass variable into main method java 【发布时间】:2012-08-21 11:52:30 【问题描述】:我正在尝试编写一个包含两个类的简单程序。我希望一个类(使用 main 方法)处理所有输入和输出,另一个类处理所有数学,然后将计算返回给 main 方法。我可以成功地将变量从 main 方法传递给数学类中的对象,并使用 println 测试了该方法中的结果,但似乎无法将完成的计算传递回我的 main 方法。这是我的代码,请帮助我理解。非常感谢 这是带有 main 方法的类
import java.util.Scanner;
public class io
public static void main (String[] args)
Scanner chargeTankStartGaugeFeetInput = new Scanner(System.in);
Scanner chargeTankStartGaugeInchesInput = new Scanner(System.in);
System.out.println("What is the charge tank's start gauge feet: ");
String chargeTankStartGaugeFeet = chargeTankStartGaugeFeetInput.nextLine();
System.out.println("What is the charge tank's start gauge inches: ");
String chargeTankStartGaugeInches = chargeTankStartGaugeInchesInput.nextLine();
math mathObject = new math();
mathObject.changeGaugesToInches(chargeTankStartGaugeFeet,
chargeTankStartGaugeInches);
System.out.println(mathObject.totalInches(totalInches)
+ " is total inches in io");
我收到一条错误消息,提示主方法中的“totalInches”无法解析为变量。我的想法是否更接近于它应该如何工作?
这是数学课
public class math
public void changeGaugesToInches(String arg1, String arg2)
double arg1Double = Double.valueOf(arg1).doubleValue();
double arg2Double = Double.valueOf(arg2).doubleValue();
double totalInches = arg1Double * 12 + arg2Double;
System.out.println(totalInches + " is the total inches");
【问题讨论】:
【参考方案1】:你可以从方法中返回值...
public double changeGaugesToInches(...)
....
return totalIncehs;
【讨论】:
【参考方案2】:首先,按照惯例,java 中的所有类和枚举名称都应以大写字母开头。其次,您可能希望为您的数学课使用更具描述性的名称,“UnitsConverter
”,如果这就是它的全部功能的话。
在changeGaugesToInches
中,您应该将arg1
和arg2
重命名为feet
和inches
。
最重要的是,您需要更改方法以返回结果,并将其分配给您的 main 方法中的变量:
double totalInches = mathObject.changeGaugesToInches(chargeTankStartGaugeFeet, chargeTankStartGaugeInches);
public double changeGaugesToInches(String arg1, String arg2)
//...
return totalInches;
因为此方法不使用任何实例变量,除非您认为您可能会在子类中覆盖此方法(例如添加公制单位),如果您将其声明为静态代码会更有效。此外,除非您需要更高的准确性,否则您可能可以使用整数。
double totalInches = UnitsConverter.changeGaugesToInches(chargeTankStartGaugeFeet, chargeTankStartGaugeInches);
public static int changeGaugesToInches(String feet, String inches)
return changeGaugesToInches( Integer.parseInt(feet), Integer.parseInt(inches) );
// this method can be used more efficiently from parts of your app that already have the units as integers.
public static int changeGaugesToInches(int feet, int in
//...
return totalInches;
【讨论】:
非常感谢您的帮助【参考方案3】:任何 void 方法都不能有返回值。自从, public void changeGaugesToInches(String arg1, String arg2) 是一个 void 方法,因此它没有返回类型。
如果将其设为静态,则不能使用 math mathObject = new math();
【讨论】:
以上是关于将变量传递给main方法java的主要内容,如果未能解决你的问题,请参考以下文章
以这种格式将 argv 变量传递给 main 的结果 main( int argc, char const * argv )