non- static 멤버와 static멤버의 차이
non- static 멤버
- 공간적 특성 : 해당 멤버는 객체마다 별도로 존재한다.
-인스턴스 멤버라고 부른다.
- 시간적 특성 : 객체 생성 시에 멤버가 생성된다.
-객체가 생성될 때, 멤버가 생성되므로 객체 생성 후에 멤버 사용이 가능.
-객체가 사라지면 해당 멤버도 사라진다.
- 공유의 특성 : 공유되지 않는다.
-멤버는 객체 내에 각각 독립된 공간을 유지하므로 공유되지 않는다.
static 멤버
- 공간적 특성 : 해당 멤버는 클래스 당 하나만 생성된다.
-해당 멤버는 객체 내부가 아닌 별도의 공간에 생성된다.
-클래스 멤버라고 부른다.
- 시간적 특성 : 클래스 로딩시에 멤버가 생성된다.
-객체가 생성되기 전에 이미 생성되므로 객체를 생성하지 않고도 사용가능.
-객체가 사라져도 해당 멤버가 사라지지 않는다.
-해당멤버는 프로그램이 종료될때, 사라진다.
- 공유의 특성 : 동일한 클래스의 모든 객체들에 의해 공유된다.
(하나의 클래스로부터 생성된 여러 객체가 공유된다.)