方法帮助 - 初学者的错误


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;
}
}

另请注意,应staticNumber()方法,以便从static main()方法调用它。此外,您需要scanner对象作为参数传递给Number()方法(如上所示)。


作为旁注,请确保您遵循 Java 命名标准,即方法名称以小写开头,如number(),但不像Number()

最新更新