티스토리 뷰

개발하면서 깃허브 코드를 참고하다보니 가끔씩 함수의 파라미터에 final 키워드가 들어가는 것을 확인했습니다.

왜 사용하는지? 사용하면 어떤 이점이 있는지 알아보겠습니다.

 

Final은 변경불가능하다는 키워드 입니다.

그렇다면 메소드 파라미터에 사용하는 것은 해당 파라미터가 변경불가능하다는 뜻인데, 어떤 이점이 있을까요?

장점

  • 재할당되서 발생할 수 있는 문제는 컴파일 타임에 바로 잡아 줄 수 있습니다.
    • 변수의 상태 변화를 추적할 필요가 없으므로 코드가 더 쉽게 읽힙니다.
  • 불변성 강조: final 키워드가 붙은 파라미터는 메소드 내에서 수정할 수 없습니다. 이는 코드를 읽는 사람에게 해당 변수가 변경되지 않을 것임을 명확하게 알려줍니다.


 

그렇다면 Final이 불변성을 의미하는 것일까요?

->아닙니다.

 

찾아보니, Final 키워드가 변수에 적용될 때, 그 변수는 재할당을 할 수 없는건 맞지만, 해당 객체의 불변성을 의미하는 것이 아닙니다.

 

1. 재할당 금지

final String str = "hello";
str = "world";  // 컴파일 에러

2.  객체 상태 변경 가능

final List<String> list = new ArrayList<>();
list.add("hello");  // 가능
list.add("world");  // 가능
  • final: 변수가 한 번 초기화된 후에는 다른 값으로 재할당할 수 없습니다.
  • 불변성: 객체의 상태가 생성 후에 변경되지 않습니다.

따라서 final은 변수 재할당을 금지할 뿐, 객체의 불변성을 보장하지는 않습니다.

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함