こんにちは!エンジニアの中沢です。
Javaにはクラスをインスタンス化せずに、直接メソッドや変数にアクセスするためのstatic修飾子があります。
この記事では、
・static修飾子とは
・static classの使い方
・staticメソッドの使い方
・static変数の使い方
という基本的な内容から、
・static finalの使い方
・static importの使い方
などの応用的な使い方に関しても解説していきます。
今回はこれらの方法を覚えるために、static修飾子のさまざまな使い方をわかりやすく解説します!
なお、Javaの記事については、こちらにまとめています。
static修飾子とは
static修飾子は主にクラスをインスタンス化せずに、直接メソッドや変数にアクセスするために使用します。
これらのstaticを付けたメソッドを静的メソッド、変数を静的変数と呼びます。
static修飾子にはたくさんの使い方があり、以下のような使い方もあります。
・staticを内部クラスで使う方法
・static finalで定数を使う方法
・static importで外部クラスのstaticメンバの参照を簡略化する使い方
static classの使い方
Javaではstatic classは内部クラス(インナークラス)で使用します。
他の言語では、通常のclassにstatic修飾子を付けることで、インスタンスを生成できない静的クラスを作ることができますが、Javaではそれをやろうとするとコンパイルエラーになりますので注意してください。
内部クラスとは、クラスの中にクラスを定義することです。
内部クラスからは外部クラスの変数などのメンバーにアクセスできるため、外部クラスとの繋がりを明確に表現したいときに使います。
内部クラスにstatic修飾子を付けると、外部クラスのstaticなメンバーのみにアクセスできるようになるため、内部クラスではなく別のクラスと同じように使うことができます。
static内部クラスについての詳しい使い方はこちらで解説しているので、ぜひ確認してください!
staticメソッドの使い方
staticメソッドとは、メソッドにstatic修飾子を付けることで、newを使ってインスタンスを生成せずに呼び出すことができるメソッドのことです。
これにより、メソッドを呼び出すときに毎回インスタンスを生成する必要がなくなるため、簡潔にコードを記述することができるようになります。
staticメソッドについての詳しい使い方はこちらで解説しているので、ぜひ確認してください!
static変数の使い方
static変数とは、変数にstatic修飾子を付けることで、その変数が含まれるクラスをインスタンス化せずに変数にアクセスできるようにしたものです。
static変数はそのクラスから生成されたすべてのインスタンスで共有される値なので、グローバル変数のように使うことができます。
static変数についての詳しい使い方はこちらで解説しているので、ぜひ確認してください!
static finalの使い方
変数の値を変更されたくない場合には、変数に「static final」を付けて値の変更できない定数にすることができます。
staticイニシャライザを使って複数の定数を初期化する方法や、ListやMapを定数で使用する方法など、「static final」についての詳しい使い方はこちらで解説しているので、ぜひ確認してください!
static importの使い方
「static import」とは、外部クラスのstaticメンバの参照を簡略化するための機能です。
これにより、メソッドや定数の呼び出しが簡略化され、簡潔なコードで処理を記述できるようになります。
まとめ
いかがでしたか?
今回はstaticの使い方について解説しました。
static修飾子を使うとクラスをインスタンス化せずに、直接メソッドや変数にアクセスできるようになり処理が簡潔に記述できるので、ぜひ覚えてくださいね。
もし、static修飾子を使う方法を忘れてしまったらこの記事を確認してください!