プログラミング勉強日記
2020年11月7日
Javaのstatic finalやstatic importを理解していなかったので、static修飾子についてまとめる。
static修飾子とは
クラスをインスタンス化せずに直接メソッドや変数にアクセスするために使用する。staticを付けたメソッドを静的メソッド、変数を静的変数という。
static classの使い方
Javaではstatic classはクラスの中にクラスを定義する内部クラス(インナークラス)で使用する。内部クラスからは外部クラスの変数などのメンバーにアクセスできる。内部クラスにstatic修飾子を付けると、外部クラスのstaticなメンバーにのみアクセスできるようになる。
※他の言語ではclassにstatic修飾子を付けることで、インスタンスを生成できない静的クラスを作れるが、Javaだとコンパイルエラーになるので注意する。
staticメソッドとstatic変数の使い方
staticメソッドはメソッドにstatic修飾子を付けることで、newを使ってインスタンスを生成することなく呼び出すことができるメソッドのことで、メソッドを呼び出すときに毎回インスタンスを生成する必要がなくなるのでコードを短く書ける。
static変数は変数にstatic修飾子を付けることで、その変数が含まれるクラスをインスタンス化せずに変数にアクセスできるようになる。static変数はそのクラスから生成されたすべてのインスタンスで共有される値なので、グローバル変数のように使える。
static finalとstatic importの使い方
static finalは変数の値を変更されたくない場合に使用し、値の変更ができない定数にすることができる。staticイニシャライザを使って複数の定数を初期化する方法やListやMapを定数で使用する方法などがある。
static importは外部クラスのstaticメンバの参照を簡略化するための機能。メソッドや定数の呼び出しが簡略化されて、簡潔なコードで処理を記述できるようになる。