01/11 섹션8 final 필기
final 전에 static 강의 들으면서 쉽지 않다란 생각이 좀 진지하게... 들었는데 final은 숨통이 트인다! 둘 다 접근 제어자면서 난이도 차이 난다고 느끼는 건 내 착각일까 하면서 static의 어려움을 중화해 보려 노력했다..(?)
- 변수에 final 키워드가 붙으면 더는 값을 변경할 수 없다는 의미다. -- 클래스, 메서드에도 붙을 수 있다.
== 최초 한 번만 할당 가능 - 필드에 final 키워드를 사용할 경우, 생성자를 통해 최초 한 번 초기화할 수 있다.
- 하지만 생성자를 쓰지 않고 바로 값을 할당한 경우, 생성자를 통해 초기화할 수 없다.
생성자에서 초기화 - 인스턴스마다 다름
필드에서 초기화 - 인스턴스마다 같음 --> 메모리 낭비, 중복
고정된 값으로, 못 바꾸니까 static final을 사용한다.
static final
보통 단 하나만 존재하는(=static) + 변하지 않는 고정된 값(=final) = 상수
- static final 상수는 변수명을 대문자로 설정한다.
- 언더스코어로 표현한다. ex. CONST_VALUE
- 필드에 직접 접근하려 해도 데이터가 변하지 않으니까 public으로 해도 괜찮다.
실생활 상수(PI, 24시간, 60분...), 애플리케이션의 다양한 설정을 위한 상수
후자는 애플리케이션 전반에서 사용되기 때문에 public을 자주 사용한다.
- 매직 넘버: 코드에서 하드코딩된 상수 값, 코드 내에서 직접 사용하는 것, 숫자가 의미하는 바가 명확하지 않아 코드의 가독성을 저하시키고 유지보수를 어렵게 한다. -> 상수(변수명)로(으로) 설정하면 코드 이해에 도움을 준다.
- 참조형 변수에 final 키워드를 붙이는 것은 참조형 변수에 들어있는 참조값을 다른 값으로 변경할 수 없다는 것이다.
하지만, 참조하는 대상의 값은 변경할 수 있다. (멤버 변수에 final이 붙어 있다면 당연히 안 된다.)
--끝--
'inflearn' 카테고리의 다른 글
[인프런] 김영한의 자바 기본 강의 섹션10. 다형성1 (240113) (1) | 2024.01.14 |
---|---|
[인프런] 김영한의 자바 기본 강의 섹션9. 상속 (240112) (0) | 2024.01.12 |
[인프런] 김영한의 자바 기본 강의 섹션7. 자바 메모리 구조와 static (240111) (0) | 2024.01.11 |
[인프런] 김영한의 자바 기본 강의 섹션6. 접근 제어자 (240109) (2) | 2024.01.10 |
[인프런] 김영한의 자바 기본 강의 섹션5. 패키지 (240109) (1) | 2024.01.09 |