【问题标题】:Method help- beginners mistakes方法帮助-初学者错误
【发布时间】:2017-09-25 21:29:06
【问题描述】:
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 时出现在方法中。

谁能解释我做错了什么?

【问题讨论】:

  • 学习缩进你的代码。它可以帮助所有必须阅读它的人——包括我们,但更重要的是,它包括
  • number() 函数必须是静态的才能在主函数中调用

标签: java class enums interface


【解决方案1】:

通常我会重新格式化问题中的代码,但由于您的问题有一半是由于代码没有缩进造成的,所以我会在回答中重新格式化。

这是您重新格式化的代码

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() 方法设为静态。

第三,您需要将扫描仪变量传递给您的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 命名标准——变量和方法名称以小写字母开头。

【讨论】:

  • 第四,使用 Java 命名约定 (Number -> number)。
  • 同意,这是一种很好的做法,但在这种情况下,它不会解决任何编译问题。
【解决方案2】:

您不能在class 定义之外编写方法,由于代码缩进不良而无法发现,因此在Problem5 类中添加您的Number() 方法为如下图:

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

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


附带说明,请确保您遵循 Java 命名标准,即方法名称以小写开头,如 number(),但不像 Number()

【讨论】:

    猜你喜欢
    • 2018-02-17
    • 1970-01-01
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 2021-04-11
    • 2022-01-17
    相关资源
    最近更新 更多