0

Javaの静的メソッドについて質問があります。クラスのインスタンスを指定せずに、別の非静的メソッドで非静的メソッドを呼び出すことができるのはなぜですか。たとえば、2つの非静的メソッドfoo1()とfoo2()がある場合、foo2(){foo()}と言うことができます。静的メソッドではこれを行うことはできません。たとえば、static void foo3(){foo()}の場合、これはコンパイルされません。これは。非静的メソッドで他のメソッドを呼び出すと暗黙的になりますか?

ありがとうございました。

4

2 に答える 2

6

クラスのインスタンスを指定せずに、別の非静的メソッドで非静的メソッドを呼び出すことができるのはなぜですか。

暗黙的にそれを呼び出しているのでthis

public void foo1() {
    foo2();
}

と同等です:

public void foo1() {
    this.foo2();
}

静的メソッドでは、呼び出しのターゲットとして暗黙的に使用することはありません。this

于 2013-02-24T08:13:28.240 に答える
1

非静的コンテキストでは、クラスのインスタンスにいます。でそのメソッドを呼び出しているので、そのクラスで他の非静的メソッドを呼び出すことができますthis。静的コンテキストでは、がないthisため、特定のインスタンスなしでメソッドを呼び出すことはできません。

于 2013-02-24T08:13:28.080 に答える