1

宿題について次の質問があります。

foo()クラスで定義されたメソッドにQuizは、次のシグネチャがあります: public static double foo(double f). あなたは何について言うことができますfoo()か?

  1. クラスメソッドです

  2. インスタンス変数です

  3. インスタンスメソッドです

  4. クラス属性です

foo()クラスで宣言されているため、クラスメソッドだと思います。答えは私が思うほど簡単ですか?

4

5 に答える 5

3

答えは、そのclass method

で宣言されたフィールドまたはメソッドは、static常にそれぞれクラスの属性または動作です。

Non-static変数はオブジェクトごとに 1 つstatic variablesですが、クラスごとに 1 つです。

staticメソッドは、変数またはメソッドにアクセスできませんNon-static

staticメソッドと変数はClass_Namewith "."(ドット) 演算子を使用して呼び出すことができます。

ただし、ない場合( Math クラスにはプライベート コンストラクターがあります)、クラスのインスタンスを作成して静的メソッドまたは変数を呼び出すこともできますが、それは合法的な方法ではありませんclass private constructor

また、それらが存在する のnull 参照を使用して呼び出す ことができることも覚えておく必要があります.... はい、動作します....static methods or variablesclass

于 2012-09-01T09:13:52.853 に答える
1

さて、あなたはそこまでの道のりです...

Javaにはインスタンスメソッドクラスメソッドがあります

インスタンス メソッドは、クラスのインスタンスに関連付けられているメソッドです。

class InstanceTest {
    public void instanceMethod() { }
}
(...)
InstanceTest it = new InstanceTest();
it.instanceMethod();

このメソッドを呼び出すには、このクラスをインスタンス化して呼び出す必要があります。

Class メソッド - static修飾子で識別されたものは、クラスで直接呼び出すことができます。

class ClassTest {
    public static void instanceMethod() { }
}
(...)
ClassTest.classMethod();

その「ルール」は変数でも同じです。インスタンス変数とクラス変数を使用できます。

インスタンスとクラス メンバーの詳細については、こちらをご覧ください。

于 2012-09-01T09:22:45.753 に答える
0

これはクラスメソッドですが、クラスで宣言されているためではなく、そうであるためstatic、定義されているクラスのオブジェクトのインスタンス変数を使用しません.

于 2012-09-01T09:15:05.613 に答える
0

キーワードを使用しているため、これはクラスメソッドですstatic。つまり、それを呼び出すためにクラスのインスタンスは必要ありません。

あなたはそれを次のように呼びます:

Quiz.foo(2.5);

反対に、インスタンス メソッド (staticキーワードなし) の場合は、メソッドを呼び出す前にインスタンス化する必要があります。

Quiz q = new Quiz();
q.foo(2.5);
于 2012-09-01T09:16:59.550 に答える
0

静的メソッドなのでクラスメソッドです。オブジェクト(インスタンス)ではなく、クラスに属します。

静的メソッドは、静的変数のみにアクセスできます。その理由は明らかです。クラスに共通するものは、オブジェクトに固有のものを参照できません。

于 2012-09-01T09:17:50.383 に答える