일반 멤버는 객체에 소속된다. 그래서 객체가 생성될 때마다 별도의 메모리를 할당받으며 개별적으로 다른 값을 가질 수 있다. Car 객체를 두 개 생성했다면 각 객체는 이름, 색상 등의 정보를 별도로 가질 수 있다. 객체별로 필드가 따로 있기 때문에 한쪽 객체의 필드값을 바꾼다고 해서 다른 객체의 필드값이 바뀌는 것은 아니다.
이에 비해 정적 멤버는 객체에 소속되는 것이 아니라 클래스에 소속된다. 클래스당 딱 하나의 메모리만 할당되므로 이 클래스로부터 생성되는 모든 객체가 정적 멤버를 공유한다. 모든 객체에 공통적으로 적용되어야 하는 속성이나 동작을 정적으로 선언한다. 다음 예제를 보자.
일반 멤버는 객체에 소속된다
정적 멤버는 객체에 소속되는 것이 아니라 클래스에 소속된다.
먼차이
여기서 클래스 = 클레스 전체, 객체 = 해당 클래스를 이용해 만들어진 객체 (예를 들어 new classname(); 으로 만들어진 해당 클래스의 인스탄스) 정도로 이해하면 됨
예를 들어 자바를 기준으로 답하자면 니가 파이 값을 원한다고 치면 Math.PI값을 읽어오지 Math 클래스를 가지고 new Math(); 같이 인스탄스를 만든 후 어기서 Pi값을 읽어오질 않잖음. 그런 게 static.
어이 거기 지잡대생 똑똑한척 하지마시저??? 오디 지잡대에서 똑떡힌척해뇨?
나는 지잡대생이 똑똑한척 하는거보면 정슨사나움
ㄳ
김선비기자 엄마뒤진어그로좀 그만끌고 나가뒤져라 좀 니엄마가 너낳고 미역국도 안처먹엇을듯
클래스 - 타입, 객체 - 변수 라고 생각하면된다. - ♡