静的変数 Java
⚡ スマートサマリー
静的変数 Java これはオブジェクトではなくクラスに属し、クラスのロード時に一度だけ初期化されます。単一の共有コピーがすべてのインスタンスに提供され、オブジェクトを作成することなくクラス名から直接アクセスできます。

静的なものは次のとおりです。
- 静的変数
- 静的メソッド
- 静的ブロック Code.
まず静的変数と静的メソッドを見てみましょう。
静的変数とは何か Java?
静的変数 Java 静的変数は、クラスに属し、実行開始時に一度だけ初期化される変数です。これは、オブジェクト(インスタンス)ではなく、クラスに属する変数です。静的変数は、実行開始時に一度だけ初期化されます。これらの変数は、インスタンス変数の初期化よりも先に初期化されます。
- クラスのすべてのインスタンスで共有される単一のコピー
- 静的変数にはクラス名によって直接アクセスでき、オブジェクトは必要ありません。
構文:
<class-name>.<variable-name>
静的メソッドとは Java?
静的メソッド Java はオブジェクトではなくクラスに属するメソッドです。 静的メソッドは静的データのみにアクセスできます。 オブジェクト(インスタンス)ではなくクラスに属するメソッドです。 静的メソッドは静的データのみにアクセスできます。 非静的データにはアクセスできません (インスタンス変数).
- 静的メソッドは他の静的メソッドのみを呼び出すことができ、そこから非静的メソッドを呼び出すことはできません。
- 静的メソッドにはクラス名によって直接アクセスでき、オブジェクトは必要ありません。
- 静的メソッドでは、「this」または「super」キーワードを参照することはできません。
構文:
<class-name>.<method-name>
注意: main メソッドは静的です。これは、インスタンス化が行われる前にアプリケーションを実行するためにアクセスできる必要があるためです。
いくつかの演習を行って、静的キーワードのニュアンスを学びましょう。
例: 静的変数とメソッドを呼び出す方法
ステップ1) 次のコードをエディターにコピーします
public class Demo{ public static void main(String args[]){ Student s1 = new Student(); s1.showData(); Student s2 = new Student(); s2.showData(); //Student.b++; //s1.showData(); } } class Student { int a; //initialized to zero static int b; //initialized to zero only when class is loaded not for each object created. Student(){ //Constructor incrementing static variable b b++; } public void showData(){ System.out.println("Value of a = "+a); System.out.println("Value of b = "+b); } //public static void increment(){ //a++; //} }
ステップ2) コードを保存してコンパイルします。 コードを次のように実行します。 Java デモ.
ステップ3) 予想される出力を以下に示します
次の図は、参照変数とオブジェクトがどのように作成され、静的変数がさまざまなインスタンスによってどのようにアクセスされるかを示しています。
ステップ4) 次の構文を使用してクラスの外部から静的変数にアクセスできます。 クラス名.変数名。 行番号 7 と 8 のコメントを解除します。 保存、コンパイル、実行。 出力を観察します。
Value of a = 0 Value of b = 1 Value of a = 0 Value of b = 2 Value of a = 0 Value of b = 3
ステップ5) 行 25,26、27、XNUMX のコメントを解除します。 保存し、コンパイルして実行します。
error: non-static variable a cannot be referenced from a static context a++;
ステップ6) エラー = ? これはインスタンス変数にアクセスできないためです。a” Java 静的クラスメソッドより”増加"
静的ブロックとは Java?
その 静的ブロック は、 Java クラスが最初にロードされたときに実行されるクラス JVMに直接影響を与えます。健全とされるのは 静的ブロックは静的データ メンバーの初期化に役立ちますコンストラクターがインスタンス メンバーの初期化に役立つのと同じように。
class Test{ static { //Code goes here } }
次のプログラムは Java 静的ブロックの例です。
例: 静的ブロックにアクセスする方法
public class Demo { static int a; static int b; static { a = 10; b = 20; } public static void main(String args[]) { System.out.println("Value of a = " + a); System.out.println("Value of b = " + b); } }
プログラムから次の出力が得られます。
Value of a = 10 Value of b = 20


