Final이라는 단어가 포함된 클래스 선언을 최종 클래스라고 합니다. Java의 최종 클래스는 상속될 수 없으며 다른 클래스에 의해 확장될 수 없습니다. 최종 클래스는 다른 클래스를 확장할 수 있습니다. 하위클래스는 될 수 있지만 슈퍼클래스는 될 수 없습니다. 불변 클래스를 생성할 때는 최종 클래스가 가장 좋은 답입니다. final 클래스는 최종 클래스임을 나타내는 선언입니다. 즉, 이 클래스에는 하위 클래스가 없으며 더 이상 확장할 수 없습니다. 마지막 클래스는 불변성 외에 더 중요한 것을 유지합니다.
때때로 보안 목적으로 최종 클래스를 사용하는 것이 가장 좋은 방법입니다. 일부 클래스는 인증 및 권한 부여와 같은 보안 관련 작업을 수행하기 때문입니다. 이러한 시나리오에서는 클래스 내부의 문자열과 메서드를 애플리케이션의 전체 수명 주기 동안 수정해서는 안 되며, 클래스를 최종으로 만드는 것이 더 나은 방법입니다.
광고 이 카테고리에서 인기 있는 강좌 재무 모델링 및 가치 평가 - 전문 분야 | 51 코스 시리즈 | 모의고사 30개무료 소프트웨어 개발 과정 시작
웹 개발, 프로그래밍 언어, 소프트웨어 테스팅 등
클래스를 만들어서 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 키워드를 사용하여 클래스를 선언하면 JVM이 가정 및 최적화를 수행할 수 있습니다. Java의 클래스에 final 키워드를 추가하면 해당 클래스에 대한 참조를 변경할 수 없습니다. 컴파일러는 참조가 다시 발생하는지 확인하여 오류를 생성합니다.
클래스 최종을 선언하고 최종 클래스를 인스턴스화하면 어떻게 되나요? 그런 다음 수영장 구역에 생성됩니다. 풀에서 생성된 객체에는 특별한 불변성 기능이 있습니다. 불변 Java 클래스의 가장 좋은 예는 String, Integer, Double 등입니다.
클래스를 final로 선언하면 암시적으로 해당 클래스의 모든 메서드가 final로 선언됩니다. 마지막은 Java의 수정자입니다. 변수, 메서드 또는 클래스에 final 키워드를 사용할 수 있습니다. 수정자가 클래스에 추가되면 해당 클래스의 모든 변수 및 메서드는 암시적으로 변경할 수 없습니다. 클래스를 불변으로 만들면 읽기 전용이므로 동기화 없이 여러 스레드에서 안전하게 공유할 수 없는 등 여러 가지 이점이 있습니다.
다음은 Java의 Final 클래스 예입니다.
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 클래스를 상속하려고 하면 아래 스크린샷과 같이 다음 오류가 발생합니다.
이제 다음 클래스로 이동하여 해당 메서드를 사용할 최종 클래스의 인스턴스를 만듭니다. 아래는 상속과정을 건너뛴 후의 프로그램 출력입니다.
이 프로그램에서는 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); } }
위의 예를 통해 최종 클래스를 어떻게 효과적으로 사용할 수 있는지 확인할 수 있습니다. 위에 주어진 프로그램의 출력은 아래와 같습니다.
출력:
이 예에서 최종 클래스는 다른 클래스인 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에서 Final 클래스의 중요성에 대해 살펴보았습니다. 또한 사람들이 Java에서 최종 클래스를 불변 클래스(immutable class)라고 부르는 경우가 많다는 점도 검토했습니다. 최종 클래스 선언과 관련된 몇 가지 필수 사항을 확인했습니다. 주어진 예에서는 최종 클래스를 참조를 통해 전달함으로써 다른 클래스에서 어떻게 효과적으로 사용할 수 있는지 확인할 수 있습니다.
위 내용은 Java의 최종 클래스의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!