Java:静态方法与非静态方法

Java: Static Method vs Non Static Method

我很难理解 Java 中静态方法和常规方法之间的区别。我知道已经有很多与此相关的问题,但是 none 我看到了完成相同任务的静态和非静态方法的并排比较。

这是我正在尝试更改为常规方法的静态方法。

public static String getString(Scanner sc, String prompt)
{
    System.out.print(prompt);
    String s = sc.next();
    sc.nextLine();
    return s;
}

这是我在另一个地方称呼它的地方 class

String productCode = Validator.getString(sc, "Enter product code: ");

我该如何更改它以使其成为常规方法并在我调用它时起作用?

实施:

public String getString(Scanner sc, String prompt)
{
    System.out.print(prompt);
    String s = sc.next();
    sc.nextLine();
    return s;
}

用法:

new Validator(...).getString(sc , "...");

方法可以是 staticdynamic(非 static)。当一个方法是static时,它属于class。当方法是动态的时,它属于您的每个特定实例 class。也就是说,删除关键字 static,会创建一个 class 的实例,并在该对象上调用此方法。

代码方面:

public String getString(Scanner sc, String prompt)
{

}

// Use the suitable constructor here.
Validator validator = new Validator();

String productCode = validator.getString(sc, "Enter product code: ");