import java.util.*;
public class Problem5 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Number();
}
}
public int Number() {
System.out.println("please enter a one digit number");
int placeholder = scanner.nextInt;
return placholder;
}
我在编写方法签名方面遇到很多麻烦。
我遇到的错误通常涉及接收或返回类型的"错误:类、接口或预期枚举"。
在这种情况下,错误出现在方法签名的返回方面,然后在尝试返回 int 时在方法中。
谁能解释我做错了什么?
通常我会重新格式化问题中的代码,但由于您的问题有一半是由代码未缩进的事实引起的,因此我将在我的答案中重新格式化它。
以下是重新格式化的代码:
import java.util.*;
public class Problem5
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
Number();
}
}
public int Number()
{
System.out.println("please enter a one digit number");
int placeholder = scanner.nextInt;
return placholder;
}
现在很容易看出您的Number()
方法不在类定义中。
此外,若要从静态方法调用Number()
方法,还需要使Number()
方法成为静态方法。
第三,您需要将 scanner 变量传递到您的Number()
方法中。
以下是生成的修复程序:
import java.util.*;
public class Problem5
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
Number(scanner);
}
public static int Number(Scanner scanner)
{
System.out.println("please enter a one digit number");
int placeholder = scanner.nextInt;
return placholder;
}
}
编辑最后,正如@AndyTurner和@javaguy指出的那样,使用 Java 命名标准 - 变量和方法名称以小写字母开头。
您不能在class
定义之外编写方法,由于代码缩进不佳,您无法发现这些方法,因此请将Number()
方法添加到Problem5
类中,如下所示:
public class Problem5 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Number(scanner);
}
public static int Number(Scanner scanner) {
System.out.println("please enter a one digit number");
int placeholder = scanner.nextInt;
return placholder;
}
}
另请注意,应static
Number()
方法,以便从static main()
方法调用它。此外,您需要将scanner
对象作为参数传递给Number()
方法(如上所示)。
作为旁注,请确保您遵循 Java 命名标准,即方法名称以小写开头,如number()
,但不像Number()