본문 바로가기
Java, JSP

[Java/자바] final 의미와 사용법

by LasBe 2021. 12. 30.
반응형

⚡️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을 적용한 결과 상속 받으려는 서브 클래스에 오류 표시가 나타난다.

반응형

댓글


오픈 채팅