static선언

SeungHwanLee·2021년 2월 16일
0

클래스설계 - 클래스멤버, 객체멤버

클래스멤버 - 클래스 맴버속성, 클래스 멤버 메서드 (static)

객체멤버 - 객체 멤버속성, 객체 멤버 메서드

클래스 멤버들은 static과 함께 사용되고 메모리의 static영역에 상주 (=static멤버)


static속성은 모든 객체가 같은 값을 가질 때 사용
static메서드는 객체존재여부와 관계없이 사용가능 (클래스 자체에 속해있기때문)

클래스는 JVM구동시 메모리의 스테틱영역에 바로 배치되기때문에 객체의 존재여부와 관계없이 사용가능 ex) main() 역시 static메서드, getter/setter, Math 등등

static속성인 경우 메모리의 스태틱영역에 클래스가 배치될 때 클래스 내부에 메모리공간이 확보됨

반면 static을 쓰지 않는 객체속성은 속성명만 있고 실제메모리공간은 객체가 생성되면 메모리의 힙 영역에 객체안에 할당됨


변수의 세가지 유형을 알아두면 도움이됨

  • static변수 - 클래스멤버속성, 정적변수, 정적속성 - 스태틱영역
  • 인스턴스 변수 - 객체속성, 객체변수 - 힙역역
  • local 변수 - 지역변수 - 스택영역
profile
Hongik CE

0개의 댓글