重複の可能性:
メソッドはいつ静的である必要がありますか?
通常、クラスの静的メソッドを作成する場合、メソッドにはを使用してアクセスできますClassName.methodName
。この簡単な例で「static」を使用する目的は何ですか。また、ここで使用すべき/すべきでないのはなぜですか。また、プライベートスタティックはスタティックを使用する目的を無効にしますか?
public class SimpleTest {
public static void main(String[] args) {
System.out.println("Printing...");
// Invoke the test1 method - no ClassName.methodName needed but works fine?
test1(5);
}
public static void test1(int n1) {
System.out.println("Number: " + n1.toString());
}
//versus
public void test2(int n1) {
System.out.println("Number: " + n1.toString());
}
//versus
private static void test3(int n1) {
System.out.println("Number: " + n1.toString());
}
}
私はいくつかのチュートリアルを見ました。例: http: //docs.oracle.com/javase/tutorial/java/javaOO/classvars.html
私の理解では、そのメソッドを使用するクラスのインスタンスを作成する代わりに、クラス名を使用するだけで済みます。特定の状況では、特定のメソッドを使用するたびにオブジェクトを作成しても意味がないため、メモリを節約できます。