ホームページ  >  記事  >  Java  >  Java の最終クラス

Java の最終クラス

WBOY
WBOYオリジナル
2024-08-30 16:01:14176ブラウズ

Final という単語を含むクラス宣言は、最終クラスとして知られています。 Java の Final クラスは継承できず、他のクラスによって拡張することもできません。最終クラスは他のクラスを拡張できます。サブクラスにはできますが、スーパークラスにはできません。不変クラスを作成する場合、最終クラスが最良の答えです。最終クラスは、最終クラスであることを示す宣言です。つまり、このクラスにはサブクラスがなく、これ以上拡張することはできません。最後のクラスは、不変性以外にもいくつかの重要性を保持しています。

一部のクラスは認証や認可などのセキュリティ関連の処理を実行するため、セキュリティ目的で最終クラスを使用することがベスト プラクティスとなる場合があります。このようなシナリオでは、クラス内の文字列とメソッドはアプリケーションのライフサイクル全体で変更すべきではないため、クラスを Final にすることをお勧めします。

広告 このカテゴリーの人気コース 財務モデリングと評価 - 専門分野 | 51 コースシリーズ | 30 回の模擬テスト

無料ソフトウェア開発コースを始めましょう

Web 開発、プログラミング言語、ソフトウェア テスト、その他

Final クラスを作成すると、アプリケーションの効率が向上します。

構文:

final class Student {
private int age = 3;
}
/* // Trying to inherit the Student class
class Info extends Student{
public static void main(String[] args) {
//creating instance of the HeavyVehicle class
System.out.println(“I am unable to inherit the class with the final keyword”);
}
}

最後の単語を含む上記のクラスは、final です。この最終クラスを別のクラスで拡張すると、以下のスクリーンショットに示すように、「エラー: 最終学生から継承できません」などのエラーが発生します。

Java の最終クラス

Final クラスは Java でどのように機能しますか?

final キーワードを使用してクラスを宣言すると、JVM は仮定と最適化を行うことができます。 Java のクラスに Final キーワードを追加すると、そのクラスの参照は変更できなくなります。コンパイラは、参照が再実行されているかどうかをチェックし、エラーを生成します。

クラスを最終的に宣言し、最終クラスをインスタンス化するとどうなるでしょうか?その後、プールエリアに作成されます。プール内に作成されたオブジェクトには、特別な不変機能があります。不変 Java クラスの最良の例としては、String、Integer、Double などがあります。

クラスをfinalとして宣言すると、そのクラスのすべてのメソッドが暗黙的にfinalとして宣言されます。最後のは Java の修飾子です。 Final キーワードは変数、メソッド、またはクラスに使用できます。修飾子がクラスに追加されると、そのクラスのすべての変数とメソッドは暗黙的に不変になります。クラスを不変にすることには、読み取り専用であり、同期なしでは複数のスレッドで安全に共有できないなど、いくつかの利点があります。

Java の最終クラスの例

Java の Final クラスの例を次に示します。

例 #1

HeavyVehicle クラスは最終クラスとして宣言されているため、指定されたプログラムでの継承を許可しません。

コード:

//This class will not be extended
final class HeavyVehicle{
void messages(){
System.out.println("Your Vehicle Insurance is going to be expire in the next month");
}
}
// Inheriting HeavyVehicle class is not allowed as it is a final class
/*class Vehicle extends HeavyVehicle{
}
*/
//main class
class Car{
public static void main(String[] args) {
//creating instance of the HeavyVehicle class
HeavyVehicle hvObj = new HeavyVehicle();
hvObj.messages();
}
}

HeavyVehicle クラスを継承しようとすると、以下のスクリーンショットに示すように、次のエラーが表示されます。

Java の最終クラス

次のクラスに進み、そこでそのメソッドを使用するための最終クラスのインスタンスを作成します。以下は、継承プロセスをスキップした後のプログラムの出力です。

Java の最終クラス

例 #2

このプログラムでは、HeavyVehicle クラスは最終クラスとして宣言されているため、他のクラスで拡張することができず、その参照を明示的に Vehicle クラスのメソッドに渡します。

コード:

//This class will not be extended
final class HeavyVehicle{
public double getDistanceCanCover(int mileage, double fuelStatus) {
return mileage * fuelStatus;
}
}
class Vehicle{
private int mileage;
private double fuelStatus;
Vehicle(int mileage, double fuelStatus){
this.mileage = mileage;
this.fuelStatus = fuelStatus;
}
public void DisplayDistanceCanCover(HeavyVehicle hvObj) {
double distCanCover = hvObj.getDistanceCanCover(this.mileage, this.fuelStatus);
System.out.println("Distance Vehicle can cover in the available fuel: " + distCanCover);
}
}
//main class
class Car {
public static void main(String[] args) {
//creating instance of the HeavyVehicle class
HeavyVehicle hvObj = new HeavyVehicle();
//creating instance of the Vehicle class
Vehicle vehObj = new Vehicle(30, 3.5);
//calling the method of the
vehObj.DisplayDistanceCanCover(hvObj);
}
}

上記の例では、最終クラスを効果的に使用する方法がわかります。上記のプログラムの出力を以下に示します。

出力:

Java の最終クラス

例 #3

この例では、最後のクラスは他のクラス、つまり Student を継承しますが、これは最終クラスであるため、他のクラスは Info クラスを拡張できません。

コード:

class Student{
public void showDetails(String name, String email, int age) {
System.out.println("\nStudent Name : "+ name);
System.out.println("\nStudent Email : "+ email);
System.out.println("\nStudent Age : "+ age);
}
}
// Trying to inherit the Student class
final class Info extends Student{
//main method of java to start program execution
public static void main(String[] args) {
//creating instance of this class
Info infoObj  = new Info();
//calling here method of the parent class
infoObj.showDetails("Alex Carry", "[email protected]", 40);
}
}

出力:

Java の最終クラス

結論

上記の記事では、Java における Final クラスの重要性について説明しました。また、一般に Java の最終クラスを不変クラスと呼ぶことも確認しました。最終クラスの宣言に関連するいくつかの重要な点に気づきました。与えられた例では、最終クラスを参照を介して渡すことによって、他のクラスでどのように効果的に使用できるかがわかります。

以上がJava の最終クラスの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。