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 , "...");
方法可以是 static
或 dynamic
(非 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: ");
我很难理解 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 , "...");
方法可以是 static
或 dynamic
(非 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: ");