我试图用Java编写一个简单的代码但是我一直在调用方法时遇到错误。
package tutorialproject2;
import java.util.Scanner;
public class Tutorialproject2 {
static Scanner input = new Scanner(System.in);
public static void main(String[] args) {
InputTest();
Calculate();
}
public static void InputTest(){
String message = input.nextLine();
System.out.println(Hello(message));
}
public static String Hello(String message){
if (message.equals("Hi")){
return "Hello";
}else{
return "Goodbye";
}
}
public int Calculate(int a,int b){
a = input.nextInt();
b = input.nextInt();
int answer = a * b;
return answer;
}
答案 0 :(得分:3)
您的方法Calculate(int a,int b)
包含2个参数,但调用不带参数Calculate()
的方法
我想您应该将方法Calculate(int a,int b)
更改为
public static int Calculate(){
int a = input.nextInt();
int b = input.nextInt();
int answer = a * b;
return answer;
}
并且如@Visme所述,添加static
关键字。
或者您可以将方法保留为
public int Calculate(){
int a = input.nextInt();
int b = input.nextInt();
int answer = a * b;
return answer;
}
在这种情况下,在main
函数中,您应该以这种方式调用方法:
new Tutorialproject2().Calculate();
答案 1 :(得分:2)
从静态函数(main)调用非静态方法计算
答案 2 :(得分:0)
应该是这样的,int var = Calculate(3,5);
,不能单独calculate()
,因为它有返回类型和参数。
您可以单独调用返回类型void
的方法,例如InputTest();
从此方法返回integer
并且该方法具有参数,因此您应该在此处传递所需的参数(整数类型),
public static int Calculate(int a,int b){
. . .
return answer;
}