제어자
제어자, 접근제한자
예제들
static 예제
생성자를 이용한 final 멤버의 변수 초기화 예제
+ )
final 필드
최종적인 필드
초깃값이 저장되면 이것이 최종적인 값이 되어 프로그램 실행 도중 수정할 수 없다.
final 필드 선언
final 타입 필드 [=초깃값];
=> final 필드에 초기값을 줄 수 있는 방법은 딱 2가지 뿐
1. 필드 선언시에 주는 방법
2. 생성자에서 주는 방법
생성자는 final 필드의 최종 초기화를 마쳐야 하므로, 초기화 되지 않는 final 필드가 남아있으면
컴파일에러가 발생한다.
ex) 주민등록번호는 Person 객체가 생성될 때 부여되므로 초기값을 미리 줄 수 없다.
따라서 생성자의 매개값으로 주민등록번호를 받아서 초기값으로 지정한다.
또한 고정된 값을 갖는 경우 선언시 초긱값을 지정해주면 됨
final String nation = "korea"; : 이런식으로
수학에서의 파이, 지구의 둘레 값 등... 불변의 값을 저장하는 필드는 상수라고 한다.
그렇다면, final 필드를 상수라고 불러도 되지않을까?
NO. final필드를 상수라고 부르지 않는다.
final 필드는 객체마다 저장되고, 생성자의 매개값을 통해 여러가지 값을 가질 수 있음(=상수가 될 수 없다.)
상수선언 방식
static final 필드는 객체마다 저장되지 않고, 클래스에만 포함되고, 한 번 초기화되면 변경할 수 없다.
stratic final 타입 상수 [=초기값];
참고
https://jdpb.tistory.com/entry/Java-final-%EC%83%81%EC%88%98
접근제어자를 통한 캡슐화 예제