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 필드의 초기값을 선언과 동시에, 선언 후 한번의 초기화가 가능합니다.
- "변수의 상수화" 라고 표현할 수 있습니다.
'프로그래밍 > 자바(Java)' 카테고리의 다른 글
[ 자바 / JAVA ] String, StringBuilder, StringBuffer 클래스 (0) | 2021.07.22 |
---|---|
[ 자바 / JAVA ] 오버라이딩 vs 오버로딩 (0) | 2021.07.22 |
[ 자바 / JAVA ] static 키워드(static 변수, static 메소드) (0) | 2021.07.22 |
[ 자바 / JAVA ] 접근제어 지시자(Access Modifier) (0) | 2021.07.22 |
[ 자바 / JAVA ] 자바 가상 머신(JVM)과 자바 프로그램 실행 (0) | 2021.07.20 |