반응형
⚡️final
자바에서 final은 변경 불가의 의미를 갖는다.
즉 final을 사용하게 된다면 뒤따라 오는 것들은 상수처럼 사용할 수 있다.
그럼 키워드가 어떻게 사용되는지 알아보자.
- final 변수
- final 메소드
- final 클래스
📌 final 변수
변수 앞에 final 키워드가 사용되면 변경 불가능한 변수, 즉 상수로써 이용된다.
만약 final 변수의 값을 다시 지정해주려 한다면 아래와 같이 에러가 발생할 것이다.
public class FinalValueEx {
public static void main(String[] args) {
final int finalValue = 0;
finalValue = 1; finalValue = 2; // 에러
}
}
그렇지만 final 변수가 클래스에서 생성되었을 때 명시적으로 초기화 되지 않았을 경우 생성자에서 한번은 값을 설정 할 수가 있다.
아래 코드에서 세가지 경우를 살펴보자.
- 명시적 초기화를 해주었을 경우
- 초기화 블럭에서 초기화 해주었을 경우
- 생성자에서 초기화 해주었을 경우
위의 코드를 통해 1, 2, 3번 순서대로 우선 순위가 있다는 것을 알 수 있다.
📌 final 메소드
메소드에 final 키워드를 적용하면 오버라이딩, 즉 재정의가 불가능한 메소드가 된다.
아래 코드와 같이 SubMethod 클래스로 부모 클래스에 상속 받아 메소드를 오버라이딩하려고 하면 빨간 줄이 그인다.
📌 final 클래스
클래스에 final 키워드를 적용하면 그 클래스는 상속 불가한 클래스가 된다.
아래 코드를 보면 FinalClass에 final을 적용한 결과 상속 받으려는 서브 클래스에 오류 표시가 나타난다.
반응형
'Java, JSP' 카테고리의 다른 글
[Java/자바] interface 인터페이스 사용법 (0) | 2022.01.01 |
---|---|
[Java/자바] 추상메소드와 추상클래스 (0) | 2021.12.31 |
[Java/자바] 다형성과 오버라이드, 캐스팅 (0) | 2021.12.29 |
[Java/자바] 입력 BufferedReader와 Scanner의 차이 (2) | 2021.12.26 |
[Java/자바] static 정적 변수와 메소드 (0) | 2021.12.23 |
댓글