static은 해당 데이터의 메모리 할당을 컴파일 시간에 할 것임을 의미합니다.
static 멤버 변수
- 클래스 변수라고도 부릅니다.
- 모든 해당 클래스는 같은 메모리를 공유합니다.
- 특정한 인스턴스에 종속되지 않습니다.
- 인스턴스를 만들지 않고 사용 가능합니다.
static 메소드
- 클래스 메소드라고도 부릅니다.
- 오버라이드 불가합니다.
- 상속 클래스에서 보이지 않습니다.
static 블록
- 클래스 내부에 만들 수 있는 초기화 블록입니다.
- 클래스가 초기화될 때 실행되고, main() 보다 먼저 수행됩니다.
static 클래스
- 일반적인 클래스, 즉 top-level 클래스에 적용하면 문법 오류입니다.
- 그러나 이것이 top-level 클래스가 static하지 않다는 뜻이 아닙니다.
- 중첩 클래스(nested class)에만 사용할 수 있습니다.
- static nested class: static으로 정의된 nested class
- inner class: static으로 정의되지 않은(non-static) nested class
- 부모 클래스의 멤버 필드 중에는 static 필드에만 접근할 수 있습니다.
- 사실상 일반적인 top-level 클래스와 동일하게 동작하지만, 그 위치가 하나의 top-level 클래스 안에 들어있는 것입니다.
- 이것은 유사한 클래스 집합을 하나로 묶고, 클래스 패키징 구조를 편리하게 정리하는 테크닉으로 사용될 수 있습니다.
static import
- 다른 클래스에 존재하는 static 멤버들을 불러올 때 사용합니다.
- 멤버 메소드를 곧바로 사용할 수 있습니다.
Uno's Blog