Java の静的変数

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-13 18:05:42635ブラウズ

Static variables in Java

静的変数とインスタンス変数

変数が静的として宣言されるときは常に、各インスタンスが独自のコピーを持つのではなく、クラス全体で変数のコピーが 1 つだけ存在することを意味します。

静的変数
静的変数が宣言されると、変数の単一コピーが作成され、クラス レベルのすべてのオブジェクト間で共有されます。静的変数は本質的にはグローバル変数です。クラスのすべてのインスタンスは同じ静的変数を共有します。

静的変数に関する注意事項
静的変数はクラス レベルでのみ作成できます。
静的ブロックと静的変数は、プログラム内に存在する順序で実行されます。
静的変数はクラスを使用してのみ直接呼び出すことができます。この中でクラスのオブジェクトを作成する必要はありません。

// Java program to demonstrate execution
// of static blocks and variables

class Test {

    // static variable
    static int a = m1();

    // static block
    static
    {
        System.out.println("Inside static block");
    }

    // static method
    static int m1()
    {
        System.out.println("from m1");
        return 20;
    }

    // static method(main !!)
    public static void main(String[] args)
    {
        System.out.println("Value of a : " + a);
        System.out.println("from main");
    }
}

上記のコードの結果:

from m1
Inside static block
Value of a : 20
from main

静的メソッドは、クラス名を使用して別の静的メソッドまたは変数を呼び出すことができます。インスタンス メソッドや変数を呼び出すことはできません。

インスタンス メソッドは、className または参照変数を使用して静的メソッドまたは変数を呼び出すことができます。インスタンス変数を使用して、別のインスタンス メソッドまたは変数を呼び出すことができます。

最後のキーワード
Final キーワードが静的としてマークされている場合、それを上書きすることはできません。 Java では、final キーワードは、変数、メソッド、またはクラスを変更または拡張できないことを示すために使用されます。変数が Final として宣言されている場合、その値は初期化されると変更できません。

静的メソッドとフィールドの設計
静的メソッドにはクラスのインスタンスは必要ありません。これらはクラスのすべてのユーザー間で共有されます。インスタンス メソッドのコードのコピーは 1 つだけです。クラスの各インスタンスは、必要に応じて何度でも呼び出すことができます。

クラスが初めてロードされるとき、静的変数にメモリが与えられます。静的変数メソッドの場合、オブジェクトの代わりに className を使用します (例: className.variable

)

静的メソッドを使用すると、呼び出し元がメソッドを呼び出すためだけにオブジェクトをインスタンス化する必要がなくなります。オブジェクトのインスタンスを使用して静的メソッドを呼び出すこともできます。コンパイラは参照の型をチェックし、オブジェクトの代わりにそれを使用します。

非静的メソッドへの静的参照を作成すると、コンパイラ エラーが発生します。

インスタンス メソッドのみが、参照変数を使用せずに同じクラスの他のインスタンス メソッドを呼び出すことができます。インスタンス メソッドにはオブジェクトが必要です。

重要なポイント:

  • インスタンス メソッドは静的メソッドを呼び出すことができます
  • 静的メソッドはインスタンス メソッドを呼び出すことはできません
  • 静的変数ではインスタンス変数を使用できません
  • 定数変数 (ステータス変数) は決して変更されないことを意図しており、変数が決して変更されないことを保証するために最終指定子を使用します。

static キーワードが最初の割り当てである場合、final 変数は再割り当てできます。たとえば、static Final 変数を宣言した場合、それは静的ブロック内で 1 回だけ初期化できることを意味します。最終変数が宣言されていても初期化されていない場合、コンパイラ エラーが発生します。

静的変数とインスタンス変数に関する知識を下のコメントに自由に追加してください。

以上がJava の静的変数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。