Javaでは、 静的 は、変数、クラス、ブロック、メソッドで使用できるキーワードです。それらの前に static キーワードを使用すると、指定されたメンバーが型自体に属していることを意味します。つまり、静的メンバーのインスタンスが作成され、クラスのすべてのインスタンス間で共有されます。
このセクションでは、 静的 キーワードを含む Javaクラス そしてまた理解します なぜ静的クラスを使用するのでしょうか?
現地の日付
Java静的クラス
static キーワードを使用してクラスを静的に宣言できます。クラスは、次の場合にのみ静的に宣言できます。 入れ子になったクラス 。外部クラスの参照は必要ありません。静的クラスの特性は、外部クラスの非静的メンバーにアクセスできないことです。
静的クラスの概念を理解するには、まず次の概念を理解する必要があります。 内側、外側、 そして 入れ子になった クラス。
内部クラス
非静的でネストされたクラスは次のように呼ばれます。 内部クラス 。外部クラスのインスタンスを作成せずに内部クラスのインスタンスを作成することはできないことに注意してください。外部クラスのインスタンスへの参照を使用せずに、内部クラスのインスタンスはその外部クラスのメンバーにアクセスできます。これにより、プログラムがシンプルかつ簡潔になります。
アウタークラス
ネストされたクラスが定義されているクラスは と呼ばれます 外部クラス 。
Java scan.nextstring
入れ子になったクラス
ジャワ として知られるクラス内にクラスを定義できます。 入れ子になったクラス 。それは静的である場合もあれば、非静的である場合もあります。静的クラスと非静的クラスの主な違いは次のとおりです。
- 静的ネストされたクラスのインスタンスは、その外部クラスのインスタンスを作成せずに作成できます。
- 外部クラスの静的メンバーと非静的メンバーには、内部クラスからアクセスできます。
- 外部クラスの静的メンバーには、静的クラスからのみアクセスできます。
覚えて
- すべての静的クラスはネストされたクラスですが、その逆は当てはまりません。
- 外部クラスの静的メンバーのみにアクセスできます。
- 静的クラス内では、非静的変数およびインスタンス メソッドにアクセスできません。静的フィールドから非静的参照にアクセスしようとすると、エラーがスローされます。 非静的フィールドへの静的参照を作成することはできません。
- 静的クラス内に静的ブロック、変数、メソッドを作成できます。
- クラスには複数の静的クラスが含まれる場合があります。
- 静的クラスが静的ブロック内にある場合、静的クラスにアクセスすることはできません。
- 静的クラス内には任意の数の静的クラスが存在できます。
Java 静的クラスの例
JavaStaticClassExample.java
public class JavaStaticClassExample { private static String s= 'Javatpoint'; //Static and nested class static class StaticNestedClass { //non-static method of the nested class public void show() { //prints the string defined in base class System.out.println(s); } } public static void main(String args[]) { JavaStaticClassExample.StaticNestedClass obj = new JavaStaticClassExample.StaticNestedClass(); //invoking the method of the nested class obj.show(); } }
出力:
Javatpoint
Java で静的クラスを使用する理由
Java では、static キーワードは主にメモリ管理に使用されます。 static キーワードは、変数、メソッド、ブロック、クラスで使用できます。静的クラスの使用は、クラスをグループ化する方法です。また、オブジェクト参照を通じて、外側のクラスのプリミティブ メンバーにアクセスするためにも使用されます。静的クラスは、外側のクラスがロードされるときではなく、最初の使用時にのみクラスローダーによってロードされます。