일반 멤버는 객체에 소속된다. 그래서 객체가 생성될 때마다 별도의 메모리를 할당받으며 개별적으로 다른 값을 가질 수 있다. Car 객체를 두 개 생성했다면 각 객체는 이름, 색상 등의 정보를 별도로 가질 수 있다. 객체별로 필드가 따로 있기 때문에 한쪽 객체의 필드값을 바꾼다고 해서 다른 객체의 필드값이 바뀌는 것은 아니다.

이에 비해 정적 멤버는 객체에 소속되는 것이 아니라 클래스에 소속된다. 클래스당 딱 하나의 메모리만 할당되므로 이 클래스로부터 생성되는 모든 객체가 정적 멤버를 공유한다. 모든 객체에 공통적으로 적용되어야 하는 속성이나 동작을 정적으로 선언한다. 다음 예제를 보자.



일반 멤버는 객체에 소속된다

정적 멤버는 객체에 소속되는 것이 아니라 클래스에 소속된다.


먼차이