宿題について次の質問があります。
foo()クラスで定義されたメソッドにQuizは、次のシグネチャがあります:public static double foo(double f). あなたは何について言うことができますfoo()か?
クラスメソッドです
インスタンス変数です
インスタンスメソッドです
クラス属性です
foo()クラスで宣言されているため、クラスメソッドだと思います。答えは私が思うほど簡単ですか?
宿題について次の質問があります。
foo()クラスで定義されたメソッドにQuizは、次のシグネチャがあります:public static double foo(double f). あなたは何について言うことができますfoo()か?
クラスメソッドです
インスタンス変数です
インスタンスメソッドです
クラス属性です
foo()クラスで宣言されているため、クラスメソッドだと思います。答えは私が思うほど簡単ですか?
答えは、そのclass method
で宣言されたフィールドまたはメソッドは、static常にそれぞれクラスの属性または動作です。
Non-static変数はオブジェクトごとに 1 つstatic variablesですが、クラスごとに 1 つです。
staticメソッドは、変数またはメソッドにアクセスできません。Non-static
staticメソッドと変数はClass_Namewith "."(ドット) 演算子を使用して呼び出すことができます。
ただし、ない場合( Math クラスにはプライベート コンストラクターがあります)、クラスのインスタンスを作成して静的メソッドまたは変数を呼び出すこともできますが、それは合法的な方法ではありません。class private constructor
また、それらが存在する のnull 参照を使用して呼び出す ことができることも覚えておく必要があります.... はい、動作します....static methods or variablesclass
さて、あなたはそこまでの道のりです...
Javaにはインスタンスメソッドとクラスメソッドがあります
インスタンス メソッドは、クラスのインスタンスに関連付けられているメソッドです。
class InstanceTest {
public void instanceMethod() { }
}
(...)
InstanceTest it = new InstanceTest();
it.instanceMethod();
このメソッドを呼び出すには、このクラスをインスタンス化して呼び出す必要があります。
Class メソッド - static修飾子で識別されたものは、クラスで直接呼び出すことができます。
class ClassTest {
public static void instanceMethod() { }
}
(...)
ClassTest.classMethod();
その「ルール」は変数でも同じです。インスタンス変数とクラス変数を使用できます。
インスタンスとクラス メンバーの詳細については、こちらをご覧ください。
これはクラスメソッドですが、クラスで宣言されているためではなく、そうであるためstatic、定義されているクラスのオブジェクトのインスタンス変数を使用しません.
キーワードを使用しているため、これはクラスメソッドですstatic。つまり、それを呼び出すためにクラスのインスタンスは必要ありません。
あなたはそれを次のように呼びます:
Quiz.foo(2.5);
反対に、インスタンス メソッド (staticキーワードなし) の場合は、メソッドを呼び出す前にインスタンス化する必要があります。
Quiz q = new Quiz();
q.foo(2.5);
静的メソッドなのでクラスメソッドです。オブジェクト(インスタンス)ではなく、クラスに属します。
静的メソッドは、静的変数のみにアクセスできます。その理由は明らかです。クラスに共通するものは、オブジェクトに固有のものを参照できません。