「Java プログラミングの考え方」の P86 に次の文章があります:
「静的メソッドは、これがないメソッドです。静的メソッド内で非静的メソッドを呼び出すことはできません。その逆も可能です」 . また、静的メソッド内で呼び出すこともできます。オブジェクトを作成せずに、静的メソッドはクラス自体を通じてのみ呼び出されます。実際、これが静的メソッドの主な目的です。」
# この段落は単なる説明ですが、静的メソッドの特殊な機能がわかりますが、静的キーワードの基本的な機能もわかります。一言で説明すると、 オブジェクトを作成せずに(メソッド/変数)を呼び出すと便利です。) 明らかに、static キーワードによって変更されたメソッドや変数は、アクセスのためにオブジェクトに依存する必要はなく、クラスがロードされている限り、クラス名を通じてアクセスできます。
static を使用すると、クラス メンバーのメソッドとクラス メンバー変数を変更できます。また、静的コード ブロックを作成してプログラムのパフォーマンスを最適化することもできます。
静的メソッド
静的メソッドは一般に静的メソッドと呼ばれます。静的メソッドはオブジェクトに依存せずにアクセスできるため、静的メソッドの場合は、 no this, because it is notattached any object. オブジェクトが存在しないので、this も存在しません。また、この機能により、クラスの非静的メンバー変数および非静的メンバー メソッドに静的メソッドでアクセスすることはできません。これは、非静的メンバー メソッド/変数は呼び出す前に特定のオブジェクトに依存する必要があるためです。 ただし、非静的メンバー メソッドと非静的メンバー変数には静的メソッドではアクセスできませんが、静的メンバー メソッド/変数には非静的メンバー メソッドでアクセスできることに注意してください。簡単な例:
上記のコードでは、print2 メソッドがオブジェクトとは独立して存在するため、直接呼び出すことができます。クラス名を使用します。非静的メソッド/変数が静的メソッドでアクセスできる場合、メイン メソッドに次のステートメントがあるとします: MyObject.print2();この位置にはオブジェクトがありません。今度はstr2が全く存在しないので矛盾が生じます。メソッドについても同様で、print1メソッドでは非静的メンバ変数にアクセスするかどうか予測できないため、静的メンバメソッド内での非静的メンバ変数へのアクセスも禁止されています。 非静的メンバー メソッドの場合、静的メンバー メソッド/変数へのアクセスに制限はありません。 したがって、オブジェクトを作成せずにメソッドを呼び出したい場合は、このメソッドを static に設定できます。最も一般的な静的メソッドは main メソッドですが、main メソッドが静的である必要がある理由については、これで明らかになりました。プログラムは main メソッドの実行時にオブジェクトを作成しないため、クラス名を介してのみアクセスできます。静的変数
静的変数は静的変数とも呼ばれます。静的変数と非静的変数の違いは、静的変数はすべてのオブジェクトで共有され、コピーは 1 つだけあり、クラスが最初にロードされた場合にのみ初期化されます。非静的変数はオブジェクトによって所有され、オブジェクトの作成時に初期化されます。複数のコピーがあり、各オブジェクトが所有するコピーは相互に影響しません。 静的メンバー変数の初期化順序は、定義された順序で初期化されます。rree
以上がJavaで静的を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。