32.5 정적 멤버와 인스턴스 멤버
계속 반복해서 설명하는 내용이지만, 클래스 내에서 선언되는 모든 멤버는 두 가지 유형 중에서 하나를 가질 수 있는데, 멤버를 선언할 때 static 키워드를 붙이느냐(정적 멤버), 붙이지 않느냐(인스턴스 멤버)로 구분합니다. static 키워드가 붙은 멤버에 접근할 때는 클래스이름.멤버이름; 형태로 접근하고, static 키워드가 붙지 않은 멤버에 접근할 때는 클래스의 인스턴스를 생성하고 생성된 개체이름.멤버이름; 형태로 접근합니다.
static 키워드가 붙은 변수를 클래스 변수라고 하며, static이 붙지 않은 변수를 인스턴스 변수라고 합니다. static 키워드가 붙으면 일반적으로 공유(shared) 개념인데, 클래스 내의 여러 메서드에서 해당 클래스 변수를 공유해서 사용합니다. 이러한 static 키워드가 붙는 메서드는 정적 메서드로, 클래스의 인스턴스를 생성하지 않고 바로 사용할 수 있습니다. 정적 메서드를 포함한 정적 멤버들은 모두 정적인 멤버만 호출할 수 있습니다.