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

时间:2015-04-06 19:06:56

标签: java methods static

我在理解静态方法和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: ");

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

2 个答案:

答案 0 :(得分:1)

实现:

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

用法:

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

答案 1 :(得分:0)

方法可以是静态的也可以是非静态的。当一个方法是静态属于该类时。虽然非静态方法属于您的类的每个特定实例。话虽如此,删除关键字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: ");