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

Java:静态方法与非静态方法,java,methods,static,Java,Methods,Static,我很难理解Java中静态方法和常规方法之间的区别。我知道已经有很多与此相关的问题,但是我所看到的没有一个显示了完成相同任务的静态和非静态方法的并排比较 这是我的静态方法,我正在尝试将其更改为常规方法 public static String getString(Scanner sc, String prompt) { System.out.print(prompt); String s = sc.next(); sc.nextLine(); return s; }

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

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

public static String getString(Scanner sc, String prompt)
{
    System.out.print(prompt);
    String s = sc.next();
    sc.nextLine();
    return s;
}
这就是我在另一节课上所说的

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 , "...");

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

在代码方面:

public String getString(Scanner sc, String prompt)
{

}

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

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

为什么要将其更改为非静态方法?您希望实现什么?我试图了解如何使用非静态方法实现相同的结果。创建静态方法的原因是,当您没有类的实例时,您希望为类调用某些内容。除此之外,静态方法可以做的任何事情,非静态方法都可以做。