본문 바로가기

Hello World!!/Java

static 멤버와 non-static 멤버의 차이


 

non-static 멤버 

static 멤버

선언 

class Sample {

   int n;

   void g() {...}

}

class Sample {

   static int m;

   static void g() {...}

공간적 특성

멤버는 객체마다 별도 존재

 - 인스턴스 멤버라고 부름 

멤버는 클래스당 하나 생성

 - 멤버는 객체 내부가 아닌 별도의 공간에 생성

 - 클래스 멤버라고 부름 

 시간적 특성

 객체 생성 시에 멤버 생성 됨

 - 객체가 생길 때 멤버도 생성

 - 객체 생성 후 멤버 사용 가능

 - 객체가 사라지면 멤버도 사라짐

클래스 로딩 시에 멤버 생성

 - 객체가 생기기 전에 이미 생성

 - 객체가 생기기 전에도 사용 가능

 - 객체가 사라져도 멤버는 사라지지 않음

 - 멤버는 프로그램이 종료될 때 사라짐

공유의 특성 

공유되지 않음

 - 멤버는 객체 내에 각각 공간 유지 

동일한 클래스의 모든 객체들에 의해 공유됨 


'Hello World!! > Java' 카테고리의 다른 글

final  (0) 2013.10.23
static 메소드의 제약 조건  (0) 2013.10.23
메소드 오버로딩 조건  (0) 2013.10.23
접근 지정자  (0) 2013.10.23