[JAVA] Final 키워드 활용

JoJo·2023년 7월 11일
0
post-custom-banner

💡 final

final 키워드는 변수(variable), 메소드(method), 클래스(class)에서 사용될 수 있습니다.
final 키워드는 어떤 곳에 사용되냐에 따라 다른 의미를 가지는데, final 키워드를 붙이면 무언가를 제한한다 는 의미를 가지는 것은 공통적인 성격입니다.


✔️ 변수(variable)

변수에 fianl을 붙이면 이 변수는 수정할 수 없다는 의미를 가집니다.

수정될 수 없기 때문에 필수적으로 초기화 해야하며, 만약 객체안의 변수라면 생성자, static블럭을 통한 초기화까지는 허용합니다.


✔️ 메소드(method)

메소드에 final을 붙이면 override를 제한하게 됩니다.

클래스를 상속하게 되면 해당 클래스의 protected, public의 접근제어자를 가진 메서드를 상속해서 재구현을 할 수 있습니다.

즉, 동일한 메소드지만 다르게 동작하게 만들 수 있습니다.


✔️ 클래스(Class)

final 키워드를 클래스에 붙이면 상속 불가능한 클래스가 됩니다.

즉, 다른 클래스에서 상속하여 재정의를 할 수 없습니다.
대표적인 클래스로 Integer 와 같은 랩퍼(Wrapper)클래스가 있습니다.
클래스 설계시 재정의 여부를 생각해서 재정의 불가능하게 사용하고 싶다면 final로 등록하는게 추후 유지보수 차원에서 좋습니다!




📌 정리

- final variable : 값이 변경되지 않도록 만듦
- final class : 클래스를 상속하지 못하도록 만듦
- final method : 메소드가 오버라이드 되지 못하도록 만듦

📌 주의할 점

final 변수는 초기화 이후 값 변경이 발생하지 않도록 만든다!

ex.
final List<String> list = new ArrayList<>();
list.add("Hello");
list.add("Java");

다음과 같이 List에 final을 선언하여 list 변수의 변경은 불가능하다.
하지만 list 내부에 있는 변수들은 변경이 가능해서 문자열을 계속 추가 할 수 있다.
profile
꾸준히
post-custom-banner

0개의 댓글