참조
https://gobae.tistory.com/3
static
- 클래스 변수를 만들어 주기 위함 = 객체의 생성이 필요 없이 사용할 수 있는 필드와 메소드를 생성하고자 할 때 활용
- 인스턴스에 상관없이 동일한 변수로 접근이 가능함
static 메소드
의 경우 객체 참조 없이 바로 사용 가능 함으로 인스턴스 필드, 메소드, this
키워드를 사용 할 수 없음
final
- 상수나 메소드, 클래스를 정의한 뒤 변경하지 못할 때 사용
- 한번 값이 정해지고 나면 값을 바꿀 수 없음
- 상수
- 메소드
- 클래스
static final
- 객체마다 값이 바뀌는 것이 아닌 클래스에 존재하는 상수
- 선언과 동시에 초기화 해줘야 하는 클래스 상수
- 해당 값은 객체마다 저장될 필요가 없고 (static이므로 클래스 변수 성질) 한 번 값이 정해지면 하나의 값을 가짐 (final 변수 성질)