我正在尝试提示用户输入3个号码。输入这些数字后,我要添加最高的两个数字。主要方法是处理所有print语句,并调用另一个方法。我不允许使用for循环来解决这个问题。 main中的变量应该传递给另一个方法。
我不知道为什么我无法从主要方法调用该方法。这是我的代码:
public class HW {
public static void main(String[] args) {
Scanner console = new Scanner(System.in);
System.out.println("Enter three numbers.");
int x = console.nextInt();
int y = console.nextInt();
int z = console.nextInt();
HW.calLargestSum(); //ERROR
HW.calLargestSum(int x, int y, int z); //STILL ERROR
}
public int calLargestSum(int x, int y, int z){
if ( x > y && x > z && y > z )
return x + y;
else if ( y > x && y > z && x > z )
return y + x;
else if ( z > x && z > y && y > x )
return z + y;
return 0;
}
}
答案 0 :(得分:0)
从main调用方法时出错。非平凡的错误是你无法从static
调用非静态。发生这种情况是因为如果它不是static
那么它就是一个实例方法。因此,它需要一个实例来访问它。
让你的方法保持静态。因此,请将您的方法更改为:
public static int calLargestSum(int x, int y, int z)
{ ... }
要调用该方法,您可以使用:
calLargestSum(1,2,3);
// or in your case.
calLargestSum(x,y,z);
另一种选择是创建一个新的类实例(如果你不想让它使用静态)。像这样:
HW hwObj = new HW();
要打电话请使用:
hwObj.calLargestSum(1,2,3);
int largest = calLargestSum(x, y, z);
System.out.println(largest);
答案 1 :(得分:0)
您无法调用它,因为您尚未实例化HW对象。两种解决方案:
HW hw = new HW();
hw.calLargestSum();
或者让方法保持静态,这样您就不需要实例化它了:
public static int calLargetSum();
进一步......好吧,这么多问题......
HW.calLargestSum(); //ERROR
没有方法calLargestSum()
,只有calLargestSum(int x, int y, int z)
。
HW.calLargestSum(int x, int y, int z); //STILL ERROR
您需要在此处传递值。 int x
不是一个值。您需要传递以下值:
HW.calLargestSum(1, 2, 3);