Java final修飾子のサンプル

Javaのfinal修飾子のサンプルです。

目次

変数の前にfinalをつける(定数)

final  変数の型  変数名
  • 変数に対して再代入が不可になります。定数と呼びます。
  • 定数名は、変数と区別が付くようにするため、大文字にします。
  • 単語で区切りがある場合はアンダスコア(_)をつけます。
  • finalは、「最後の」という意味です。

コード

変数の前にfinalをつけたサンプルです。

package test1;
	
public class Test1 {
	
	private static final int PRICE = 100;
	
	public static void main(String[] args) {
	
//		PRICE = 200;
		System.out.println(PRICE); //100
	}
}

5行目は、定数です。
9行目は、定数に対して値を代入しようとしていますができません。コンパイルエラーになります。(finalフィールドに代入できません)
通常、定数はstatic修飾子も付けます。

 

クラスの前にfinalをつける

final  クラス名
  • クラスの継承が不可になります

コード

クラスの前にfinalがつくサンプルです。

package test1;

final class Sample1{
}

//class Sample2 extends Sample1 {
//} 

public class Test1 {
	public static void main(String[] args) {
//		Sample2 s2 = new Sample2();
	}
}

3行目は、クラスの前にfinalがついています。
6行目は、Sample1クラスを継承しようとしますが、継承できません。コンパイルエラーになります。(finalクラスをサブクラス化できません)

 

メソッドの前にfinalをつける

final  戻り値の型  メソッド名()
  • オーバーライドが不可になります。

コード

メソッドの前にfinalがつくサンプルです。

package test1;

class Sample1{
	final void print() {
	}
}

class Sample2 extends Sample1 {
	//public void print() {
	//}
} 
public class Test1 {
	public static void main(String[] args) {
		Sample2 s2 = new Sample2();
	}
}

4行目は、メソッドの前にfinalがついています。
9行目は、printメソッドをオーバーライドしようとしますが、オーバーライドできません。コンパイルエラーになります。(finalメソッドをオーバーライドできません)

関連の記事

Java staticメソッドとstatic変数のサンプル
Java static初期化ブロックと初期化ブロックのサンプル
Java staticインポートのサンプル

△上に戻る