キーワード (Java)
これを静的初期化子と呼び、主にstatic finalな配列やCollectionオブジェクトの初期化などに利用される。データベースにアクセスするためにJDBCドライバを呼び出すClass.forName("ドライバ名")もこの静的初期化子を呼び出している。
例:
内部クラス
入れ子にされたクラス(ネストされたクラス: nested class)のうち、static修飾されていないものは内部クラス (inner class) と呼ばれ、暗黙的に外側のクラスのインスタンスをキャプチャして参照することができるが、このネストクラスをstatic修飾すると静的ネストクラス (static nested class) となり、暗黙的に外側のクラスのインスタンスを参照できなくなる。
例:
abstract
クラスまたはメソッドに付けられる修飾子である。finalと併用することはできない。Javaでは、実装されないメソッドがあるクラスを作成することができる。抽象クラス自身のインスタンスを作成することはできない。似たものとしてインタフェースがあるが、abstract class は以下の点においてインタフェースと異なる。
コンストラクタを持つことができる
メソッドなどの実装を記述できる
クラス、メンバの宣言に付けられる修飾子である。
public, protected, private クラス、メンバのアクセス制御を指示する修飾子(アクセス修飾子(英語版))である。外部からアクセス可能な範囲を決める。Javaでは4つの段階が設けられ、以下の番号が大きくなるほど外部からのアクセスが制約される。 publicでは、すべてのクラスからアクセスできる。 protectedでは、同一パッケージにあるクラスかサブクラスからのみアクセスできる。異なるパッケージでサブクラスでないクラスからはアクセスできない。クラスを修飾することはできない (内部クラスは例外)。 アクセス修飾子がない場合は、同一のパッケージ内のクラスからのみアクセスできる。サブクラスであってもパッケージが異なる場合はアクセスできない。 privateでは、他のクラスからはアクセスできず、自クラスからのみアクセスできる。クラスに修飾することはできない (内部クラスは例外)。 Java SE 1.0ではprivate protectedという組み合わせを使用して、自分自身とサブクラスからのアクセスができるが同じパッケージ内の他のクラスからはアクセスできないというアクセス権を使用することができたが、これはJava SE 1.1以降から廃止され利用することができなくなった。