프로그래밍/자바(Java)
[ 자바 / JAVA ] final 키워드
후르트링
2021. 7. 20. 20:08
728x90
final의 간단한 의미는 "초기 세팅 후 바꾸지 못하게 막는다" 정도로 해석할 수 있을 것 같습니다.
C++의 const와 비슷한 역할을 합니다.
메소드, 클래스, 변수에도 각각 사용되었을 때의 용법을 정리해보았습니다.
[클래스의 final]
final class MyClass{ ... }
- MyClass를 상속하는 것을 허용하지 않습니다.
- String 클래스가 대표적인 final 클래스 입니다.
[final 메소드]
class A{ final void aFunc(int n){ ...} }
- aFunc 메소드의 오버라이딩을 허용하지 않습니다.
- "A" 클래스는 상속은 가능하지만 A클래스는 상속받은 하위 클래스에서는 aFunc 메소드를 오버라이딩이 불가능합니다.
[변수의 final]
// 선언과 함께 초기화
final int pi = 3.14;
// 선언 후 한번의 초기화
final int c;
c = 100;
- final 필드는 선언 후에 값을 재정의가 불가능합니다.
- 즉, final 필드의 초기값을 선언과 동시에, 선언 후 한번의 초기화가 가능합니다.
- "변수의 상수화" 라고 표현할 수 있습니다.