Java Keywords Essentials シリーズへようこそ!この投稿は、静的変数 に関するものです。これは、同じクラスの複数のオブジェクト間でデータを共有できる Java の強力な機能です。
静的変数の目的、動作、主な使用例について、実際の例と洞察を交えて説明します。 別の投稿では、コンテンツが多すぎて圧倒されないよう、静的メソッドについて詳しく説明します。
この投稿は、以前の投稿で説明した概念に基づいています。ここで取り上げるトピックをより深く理解するために、最終キーワードと静的ブロックを確認することをお勧めします。
静的変数は、個々のインスタンスではなくクラスに属します。これはクラスのすべてのオブジェクト間で共有され、これらのオブジェクト全体で同じ値を保持します。
package keywords.static_keyword; public class StaticVariables { // Static variable: Shared across all instances of the class // Automatically initialized to default value on class loading static int idCounter; // int default value -> 0 // Static final variables // Must be initialized at declaration or in a static block static final String COMPANY_NAME = "TechCorp"; static final String OFFICE_CODE; // Instance variables: Unique to each object int employeeId; String employeeName; // Static final variable Initialized in a static block static { // Default region: US String region = System.getProperty("user.region", "US"); switch (region) { case "EU": regionalOfficeCode = "EU-01"; break; case "APAC": regionalOfficeCode = "AP-11"; break; default: regionalOfficeCode = "US-00"; } System.out.println("Static Block Invoked: Office Code set to " + regionalOfficeCode); } // Constructor: Assigns a unique ID to each object public StaticVariables(String name) { this.employeeName = name; this.employeeId = ++idCounter; // Incrementing the shared counter } // Instance method // Displays instance details along with shared data(static variables) void displayEmployeeDetails() { System.out.println("Employee ID: " + employeeId + ", Name: " + employeeName + ", Company: " + COMPANY_NAME + ", Office Code: " + OFFICE_CODE); } public static void main(String[] args) { // Creating instances to observe static variable behavior StaticVariables emp1 = new StaticVariables("Alice"); StaticVariables emp2 = new StaticVariables("Bob"); emp1.displayEmployeeDetails(); emp2.displayEmployeeDetails(); // Accessing the static variable directly using the class name System.out.println("Total Employees: " + StaticVariables.idCounter); } }
Static Block Invoked: Office Code set to US-00 Employee ID: 1, Name: Alice, Company: TechCorp, Office Code: US-00 Employee ID: 2, Name: Bob, Company: TechCorp, Office Code: US-00 Total Employees: 2
静的変数:
静的最終変数:
静的ブロック:
インスタンス変数とメソッド:
静的変数へのクラスレベルのアクセス:
package keywords.static_keyword; public class StaticVariables { // Static variable: Shared across all instances of the class // Automatically initialized to default value on class loading static int idCounter; // int default value -> 0 // Static final variables // Must be initialized at declaration or in a static block static final String COMPANY_NAME = "TechCorp"; static final String OFFICE_CODE; // Instance variables: Unique to each object int employeeId; String employeeName; // Static final variable Initialized in a static block static { // Default region: US String region = System.getProperty("user.region", "US"); switch (region) { case "EU": regionalOfficeCode = "EU-01"; break; case "APAC": regionalOfficeCode = "AP-11"; break; default: regionalOfficeCode = "US-00"; } System.out.println("Static Block Invoked: Office Code set to " + regionalOfficeCode); } // Constructor: Assigns a unique ID to each object public StaticVariables(String name) { this.employeeName = name; this.employeeId = ++idCounter; // Incrementing the shared counter } // Instance method // Displays instance details along with shared data(static variables) void displayEmployeeDetails() { System.out.println("Employee ID: " + employeeId + ", Name: " + employeeName + ", Company: " + COMPANY_NAME + ", Office Code: " + OFFICE_CODE); } public static void main(String[] args) { // Creating instances to observe static variable behavior StaticVariables emp1 = new StaticVariables("Alice"); StaticVariables emp2 = new StaticVariables("Bob"); emp1.displayEmployeeDetails(); emp2.displayEmployeeDetails(); // Accessing the static variable directly using the class name System.out.println("Total Employees: " + StaticVariables.idCounter); } }
この投稿では、インスタンス間での共有状態を可能にする基本的な機能である静的変数について説明しました。静的変数を理解すると、特に複数のオブジェクト間で一貫性を保つ必要があるデータを管理する場合に、より効率的なコードを作成するのに役立ちます。
次の投稿では、静的メソッドについて詳しく説明し、その動作、制限、ベスト プラクティスを探ります。
Java の基礎
アレイインタビューの要点
Java メモリの基礎
コレクション フレームワークの基本
コーディングを楽しんでください!
以上が静的キーワード: Java での静的変数のデコードの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。