Javaの定数は変数名の前にfinalが付き、一度初期化したらあとは変更できないというものです。
1度は必ず初期化しないとコンパイルエラーになります。
final int a = 1;
のような初期化以外にもコンストラクタでも初期化できることを知りました。
そこでやってみたソースが以下です。
FinalFormat.java
package sample;
public class FinalFormat {
final int f;
//コンストラクタ
FinalFormat(int g){
f = g;
};
}
Main.java
package sample;
public class Main {
public static void main(String[] args) {
FinalFormat finalformat = new FinalFormat(123);
System.out.println(finalformat.f);
}
}
実行結果は画像の通りです。
コンストラクタで定数を初期化したので、コンパイルエラーにならずに実行し正しい結果が得られました。