Java のプライベート静的変数

Aryan Tyagi 2023年10月12日
Java のプライベート静的変数

一般に静的変数として知られるクラス変数は、クラス内で static キーワードを使用して定義されますが、メソッド、コンストラクター(デフォルトまたはパラメーター化)、またはブロックの外部にあります。

プライベート静的変数は、定数に頻繁に使用されます。たとえば、多くの人はコードで定数を使用しないことを好みます。代わりに、意味のある名前でプライベート静的変数を作成し、それをコードで利用して、コードをより理解しやすくすることを好みます。

変数が静的であると宣言されている場合、変数の値はすべてのインスタンスで同じであり、その変数を呼び出すためにオブジェクトを作成する必要はありません。

private static として宣言された変数には簡単にアクセスできますが、それが定義および宣言されているクラスの内部からのみアクセスできます。これは、変数がプライベートとして宣言されており、クラスの外部からプライベート変数にアクセスできないためです。クラス内では、ClassName.Variable_name を使用してアクセスできます。

例えば、

public class Demo {
  private static int a = 10;

  public static void main(String[] args) {
    System.out.println(Demo.a); // className.variable_name
  }
}

出力:

10

上記の例では、静的プライベート変数を作成し、その値を出力しました。

例を理解して、プライベート静的変数とプライベート静的変数の違いを見てみましょう。

public class test {
  private static int eye = 2;
  private int leg = 3;

  public test(int eyes, int legs) {
    eye = eyes;
    leg = leg;
  }

  public test() {}

  public void print() {
    System.out.println(eye);
    System.out.println(leg);
  }

  public static void main(String[] args) {
    test PersonB = new test(14, 8);
    PersonB.print();
  }
}

出力:

14
3

PersonB オブジェクトは上記の例の eye 変数を変更しますが、leg 変数は同じままです。これは、プライベート変数がそれ自体をメソッドにコピーし、元の値を保持するためです。ただし、プライベート静的値には、すべてのメソッドが共有するコピーが 1つしかないため、その値を変更すると元の値が変更されます。

関連記事 - Java Class