그만큼 최종 키워드 Java에서는 사용자를 제한하는 데 사용됩니다. Java final 키워드는 다양한 상황에서 사용될 수 있습니다. 최종은 다음과 같습니다.
- 변하기 쉬운
- 방법
- 수업
final 키워드는 변수와 함께 적용될 수 있는데, 값이 없는 최종 변수를 공백 최종 변수 또는 초기화되지 않은 최종 변수라고 합니다. 생성자에서만 초기화할 수 있습니다. 빈 최종 변수는 정적 블록에서만 초기화되는 정적 변수일 수도 있습니다. 이에 대해 자세히 학습하겠습니다. 먼저 final 키워드의 기본을 알아봅시다.
오토캐드에서 3D
1) 자바 최종 변수
임의의 변수를 final로 만들면 final 변수의 값을 변경할 수 없습니다(상수입니다).
최종 변수의 예
최종 변수 속도 제한이 있습니다. 이 변수의 값을 변경하려고 합니다. 하지만 최종 변수에 값이 할당되면 절대 변경할 수 없기 때문에 변경할 수 없습니다.
class Bike9{ final int speedlimit=90;//final variable void run(){ speedlimit=400; } public static void main(String args[]){ Bike9 obj=new Bike9(); obj.run(); } }//end of class지금 테스트해보세요
Output:Compile Time Error
2) 자바 최종 메소드
어떤 메소드를 최종으로 만들면 이를 재정의할 수 없습니다.
최종 방법의 예
class Bike{ final void run(){System.out.println('running');} } class Honda extends Bike{ void run(){System.out.println('running safely with 100kmph');} public static void main(String args[]){ Honda honda= new Honda(); honda.run(); } }지금 테스트해보세요
Output:Compile Time Error
3) 자바 최종 클래스
어떤 클래스를 최종 클래스로 만들면 확장할 수 없습니다.
최종 수업의 예
final class Bike{} class Honda1 extends Bike{ void run(){System.out.println('running safely with 100kmph');} public static void main(String args[]){ Honda1 honda= new Honda1(); honda.run(); } }지금 테스트해보세요
Output:Compile Time Error
Q) final 메소드는 상속되나요?
답변) 네, final 메소드는 상속되지만 재정의할 수는 없습니다. 예를 들어:
class Bike{ final void run(){System.out.println('running...');} } class Honda2 extends Bike{ public static void main(String args[]){ new Honda2().run(); } }지금 테스트해보세요
Output:running...
Q) 비어 있거나 초기화되지 않은 최종 변수는 무엇인가요?
선언 시 초기화되지 않은 최종 변수를 빈 최종 변수라고 합니다.
객체 생성과 동시에 초기화되어 한번 초기화되면 변경이 불가능한 변수를 생성하고 싶을 때 유용합니다. 예를 들어 직원의 PAN CARD 번호입니다.
생성자에서만 초기화할 수 있습니다.
빈 최종 변수의 예
class Student{ int id; String name; final String PAN_CARD_NUMBER; ... }
Que) 빈 최종 변수를 초기화할 수 있나요?
예, 하지만 생성자에서만 가능합니다. 예를 들어:
자바가 아닌 무작위
class Bike10{ final int speedlimit;//blank final variable Bike10(){ speedlimit=70; System.out.println(speedlimit); } public static void main(String args[]){ new Bike10(); } }지금 테스트해보세요
Output: 70
정적 공백 최종 변수
선언 시 초기화되지 않은 정적 최종 변수를 정적 공백 최종 변수라고 합니다. 정적 블록에서만 초기화할 수 있습니다.
정적 공백 최종 변수의 예
class A{ static final int data;//static blank final variable static{ data=50;} public static void main(String args[]){ System.out.println(A.data); } }
Q) 최종변수란 무엇인가요?
매개변수를 final로 선언하면 해당 값을 변경할 수 없습니다.
class Bike11{ int cube(final int n){ n=n+2;//can't be changed as n is final n*n*n; } public static void main(String args[]){ Bike11 b=new Bike11(); b.cube(5); } }지금 테스트해보세요
Output: Compile Time Error
Q) 생성자를 final로 선언할 수 있나요?
아니요, 생성자는 상속되지 않기 때문입니다.