파이널 필드는 "최종적" 이라는 뜻을 가지고 있다. 그럼 최종적인 필드란 뜻인데, 무슨말인가?
final 필드의 초기값을 줄 수 있는 방법은 딱 두가지 있다.
필드 선언시에 주는방법,
생성자에서 주는방법
단순 값이라면 필드 선언 시에 주는 것이 제일 간단하지만 복잡한 초기화 코드가 필요하거나 객체 생성 시에 외부 데이터로 초기화해야 한다면 생성자에서 초기값을 지정해야 한다. 생성자는 final 필드의 최종 초기화를 마쳐야 하는데, 만약 초기화 되지 않은 final 필드를 그대로 남겨두면 컴파일 에러가 발생합니다.