今回Javaで定数とは?
また定数の使い方について解説していきます。
何度も使用する「文字列」や変更、再代入されたくない変数は定数化しましょう。
定数とは
以下のようにfinalで宣言された変数を定数と呼びます。
static final 型 変数名
final付きで宣言することで再代入ができなくなり、
値の変更もできなくなります。
また、定数は変数と区別がつきやすいように
大文字で宣言し、
複数の単語を繋げる定数名の場合は
アンダースコア(_)を使います。
finalは配列やクラス、メソッドにも使用可能です。
サンプルコード 変数
変数にfinalをつけることによって、
再代入不可、変数の値の変更が不可になります。
public class Main {
// クラスで使用する定数を宣言する
public final String RESULT_OK = "OK";
public final String RESULT_NG = "NG";
public static void main (String[] args) {
System.out.println(RESULT_OK);
System.out.println(RESULT_NG);
}
}
実行結果
OK
NG
サンプルコード クラス
final class クラス名{}
宣言はいつものクラスの宣言時にfinalを付与するだけです。
クラスを定義する際にfinalをつけた場合、
クラスの継承が不可になります。
// classの前にfinalを付ける
final class Sample{
・・・・・・・・・・・・・・
・・・・・・・・・・・・・・
}
// finalで宣言されたクラスなので継承ができない
// class Sample2 extends Sample{
// }
クラスを継承しようとしてますが、できません。
この状態でコメントアウトを解除したら
コンパイルエラーとなります。
サンプルコード メソッド
final 戻り値の型 メソッド名(){}
finalをつけてメソッドを宣言することで
finalの恩恵を受けれます。
メソッド定義のfinalの恩恵は
オーバーライドができなくなることです。
public class Sample {
final void write() {}
}
public class Sample2 extends Sample {
// 継承していてもfinalメソッドをオーバーライドできなくなっている
// public void write() {}
}
継承元のメソッドをオーバーライドできず、
コメントアウトを解除するとコンパイルエラーとなります。