final 키워드는 변수(variable), 메서드(method), 또는 클래스(class)에 사용될 수 있습니다. 이 final 키워드는 어떤 곳에 사용되냐에 따라 다른 의미를 가집니다. 하지만 final 키워드를 붙이면 무언가를 제한한다는 의미를 가지는 것은 공통적이 성격입니다.
final name = “홍길동”
int
, String
, boolean
….등의 기본형(원시) 변수는 값이 변경되지 않는다!
Object
, List
, Collection
…참조형 변수는 가리키는 객체(주소)는 변경하지 못하지만, 그 객체 내부의 값은 변경할 수 있다!
→ 즉, 실컷 리스트를 만들어 final로 선언했더니 외부에서 누군가가 리스트 멤버나 해당 멤버의 속성값을 변경해버릴 수 있다는 말이다.
상속 받은 클래스에서 해당 메서드를 수정해서 사용하지 못하도록 할 수 있는것이 메서드에 final을 붙일 수 있다. 즉 @Override
함수에서의 변경을 제한한다.
final 키워드를 클래스에 붙이면 상속 불가능 클래스가 된다.
상속을 통해서 다형성의 이점을 얻고자 상속받아 해당 클래스를 재정의 할 수 있는데, final을 통해 재정의를 막는 방법이다.
드디어 오늘 공부하고자 했던 파트 🏃♀️🏃♀️
장점
파라미터로 받아오는 인자에 대한 값 재할당을 금지하는 이점이 있다.
매개변수를 final로 선언함으로써 인자로 들어온 값에 대한 데이터의 정합성을 유지 할 수 있다.
단점
파라미터가 많아질수록 가독성을 해칠 수도 있다는 단점을 생각해볼 수도 있다.
공부한것 - 일급 컬렉션 : 3주차 끝나고 업로드예정
static 은 고정됨을 의미하고, final은 수정 불가능을 의미하니
final + static 은 ‘상수’
즉, 한번 설정되어 고정되지 않는 값을 의미한다.