【Java入門】final classの使い方

こんにちは!フリーエンジニアのヤマシタです。

Javaには「final修飾子」という便利な機能があります。

この記事では、

・final修飾子の使い方
・クラスでfinalを使用する方法
・メソッドでfinalを使用する方法

という基本的な内容から、

・finalの速度面での比較

などに関しても解説していきます。

今回はそんなfinal修飾子について、さまざまな方法をわかりやすく解説します!

final修飾子の使い方

final修飾子は、変数のように何度も値を設定することができず、一度値を設定したら変更できないようにするために使用します。

主に変更する予定のない規定値などの値を設定するときに、以下のように宣言して使用します。

final修飾子を使用した定数の使い方については、以下の記事で詳しく解説しています。

final修飾子は、変数の値を変更したくないときに使用しますが、クラスやメソッドでも同様に内容を変更できないようにする目的で使用することが可能です。

クラスでfinalを使用する方法

final修飾子を指定してクラスを宣言すると、基本的にその親クラスはサブクラスで継承することができません。

クラスをfinal修飾子で使用する目的としては、サブクラスで不用意に値を変えられたくないときや、親クラスの安全性を保つために使用されます。

クラスをfinalで指定する場合には、以下のように記述します。

以下のように親クラスをfinalで指定すると、extendsを使用した親クラスの継承が設定できずに、コンパイルエラーとなります。

メソッドでfinalを使用する方法

親クラスのメソッドの内容を、サブクラスで不用意に変えられたくない場合は、メソッドにfinal修飾子を指定することもできます。

final修飾子でメソッドを指定する場合は、以下のように記述します。

以下のように親クラスであるFruitsClassのメソッドに対して、final修飾子を付与すると、サブクラスで親クラスのメソッドのオーバーライドができなくなります。

finalのパフォーマンス

final修飾子を指定した場合の速度面はどうなのでしょうか?

以下にfinal修飾子を指定した定数と通常の変数で、ループの中で1000回演算したときの速度を、ナノ秒単位で計測してみました。

実行結果のとおり、finalを付加したほうが処理速度が早いことがわかりました!

クラスについてもっと詳しく知りたい方へ

クラスのさまざまな使い方については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

finalについてもっと詳しく知りたい方へ

finalのさまざまな使い方については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

まとめ

ここではfinal修飾子について、意味や基本的な使い方の説明、定数と変数の速度比較の検証を行いました。

final修飾子は不用意に変数や、クラス・メソッドの内容を変えられたくないときに使用します。

もし、クラスやメソッドをfinalで指定する方法を忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

ヤマシタ

エンジニア歴10年のフリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、200本以上の執筆経験があります。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説