ホームページ >Java >&#&チュートリアル >静的キーワード: メソッド内の静的メンバーと非静的メンバーへのアクセス
この投稿では、メソッドが静的および非静的メンバーとどのように相互作用するか、および静的ローカル変数が相互作用しない理由に焦点を当てます。許可された。これは面接でよくあるトピックであり、Java 開発者にとって重要な概念です。
この投稿は、このシリーズの以前の投稿で説明した概念に基づいて構築されています。 static キーワードを初めて使用する場合は、ここで説明するトピックに入る前に、より良い基礎を得るために Static Block と Static Variables を確認することをお勧めします。
静的メソッドはクラス レベルで動作するため、インスタンス メンバーに直接アクセスできません。
package keywords.static_keyword; public class StaticVariables { // Static and non-static variables static int idStatic = 1; // Shared across all instances int id; // Unique to each instance String name; // Unique to each instance // Static block – Runs once when the class is loaded static { displayStatic(); // Call to static method // Cannot access non-static method in static block display(); // --> Compilation error } // Constructor to initialize non-static variables public StaticVariables(String name) { this.id = ++idStatic; // Increment static ID for every new instance this.name = name; } // Non-static method: Can access both static and non-static members void display() { System.out.println("Instance Method:"); System.out.println("Static ID: " + idStatic + ", Instance ID: " + id + ", Name: " + name); } // Static method: Can only access static members directly static void displayStatic() { System.out.println("Static Method:"); System.out.println("Static ID: " + idStatic); // Static local variables are not allowed static int localVar = 10; // --> Compilation error } public static void main(String[] args) { // Call static method directly displayStatic(); // Create instances to access non-static methods StaticVariables obj1 = new StaticVariables("Object1"); StaticVariables obj2 = new StaticVariables("Object2"); // Access non-static methods through objects obj1.display(); obj2.display(); } }
Java では、メソッドまたはブロック内で 静的ローカル変数 を使用できません。
package keywords.static_keyword; public class StaticVariables { // Static and non-static variables static int idStatic = 1; // Shared across all instances int id; // Unique to each instance String name; // Unique to each instance // Static block – Runs once when the class is loaded static { displayStatic(); // Call to static method // Cannot access non-static method in static block display(); // --> Compilation error } // Constructor to initialize non-static variables public StaticVariables(String name) { this.id = ++idStatic; // Increment static ID for every new instance this.name = name; } // Non-static method: Can access both static and non-static members void display() { System.out.println("Instance Method:"); System.out.println("Static ID: " + idStatic + ", Instance ID: " + id + ", Name: " + name); } // Static method: Can only access static members directly static void displayStatic() { System.out.println("Static Method:"); System.out.println("Static ID: " + idStatic); // Static local variables are not allowed static int localVar = 10; // --> Compilation error } public static void main(String[] args) { // Call static method directly displayStatic(); // Create instances to access non-static methods StaticVariables obj1 = new StaticVariables("Object1"); StaticVariables obj2 = new StaticVariables("Object2"); // Access non-static methods through objects obj1.display(); obj2.display(); } }
static void displayStatic() { static int localVar = 10; // --> Compilation error }
Context | Access Static Members | Access Non-Static Members | Allow Static Local Variables? |
---|---|---|---|
Static Method | Yes | No | No |
Non-Static Method | Yes | Yes | No |
Static Block | Yes | No | No |
静的メソッドと静的メンバーは Java の重要なツールです。重要なポイントは次のとおりです:
これらのルールを理解することで、プログラム内で静的メソッドを効果的に使用できるようになります。
Java の基礎
アレイインタビューの要点
Java メモリの基礎
コレクション フレームワークの基本
コーディングを楽しんでください!
以上が静的キーワード: メソッド内の静的メンバーと非静的メンバーへのアクセスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。