0

オブジェクトとクラスを介してメソッドを呼び出すことの違いは何ですか。

たとえば、Bob クラス

public class SecretNumber() {
    public static int secretNumber = 2;
    public static void changeSecretNumber(){
        secretNumber++;
    }
}

オブジェクトのように呼び出した場合の違いは何ですか

SecretNumber secretNumber = new SecretNumber();
secretNumber.changeSecretNumber();

vsこのように呼び出す

SecretNumber.changeSecretNumber();

ある方法は他の方法にどのように影響しますか?

4

4 に答える 4

3

結果は同じです。

動的ディスパッチが発生しないため、インスタンスではなくクラス名で呼び出す必要があります。

これを行うと、ほとんどのコンパイラは警告を出します。コンパイルエラーにするべきだったと主張する人もいます

于 2012-07-06T01:14:45.500 に答える
0

Java では、クラス メソッドが「静的」でない限り、オブジェクト インスタンスを介して以外は呼び出すことができません。

「静的」と宣言することが理にかなっているメソッドの例を次に示します。

http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html

于 2012-07-06T01:08:05.237 に答える
0

2 番目の形式は有効な Java ではありません。メソッドが宣言されている場合にのみ、クラスのメソッドを呼び出すことができますstatic

于 2012-07-06T01:08:43.423 に答える
0

クラスを介したメソッドの呼び出しは静的メソッドです。メソッドを静的メソッドとして宣言しない限り、コンパイラはコンパイル エラーを返します。

于 2012-07-06T01:09:36.653 に答える