Java final修飾子のサンプル

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

目次

変数の前にfinalをつける

  • 変数に対して再代入が不可になります。これを定数と呼びます。
  • 定数名は変数と区別が付くように大文字にし単語の区切りはアンダースコアにします。

コード

変数の前にfinalがつくサンプルです。
5行目は、変数の前にfinalがついています。
9行目は、値を代入しようとしますが、再代入不可です。コンパイルエラーになります。(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
	}
}

 

クラスの前にfinalをつける

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

コード

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

package test1;

final class Sample1{
}

//class Sample2 extends Sample1 {
//} 

public class Test1 {
	public static void main(String[] args) {

//		Sample2 s2 = new Sample2();
	}
}

 

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

  • オーバーライドが不可になります。

コード

メソッドの前にfinalがつくサンプルです。
5行目は、メソッドの前にfinalがついています。
11行目は、printメソッドをオーバーライドしようとしますが、オーバーライド不可です。コンパイルエラーになります。(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();
	}
}

関連の記事

Java クラスの変数のサンプル(メンバー変数/ローカル変数)
Java 変数のデータ型とラッパークラス
Java staticメソッドとstatic変数のサンプル
Java static初期化ブロックと初期化ブロックのサンプル
Java staticインポートのサンプル
Java abstract修飾子のサンプル

 はまったらエンジニア特化型Q&Aサイト
【teratail(テラテイル)】で質問しましょう!


△上に戻る