공부/JAVA

[JAVA] static

JangGiraffe 2016. 2. 3. 16:03

<Static의 특성>

 

Static 

non-Static 

공간적 특성 

멤버는 클래스당 하나 생성

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

- 클래스멤버라고 부름

멤버는 객체마다 별도로 존재.

- 인스턴스 멤버라고 부름 

시간적 특성 

클래스 로딩시에 생성

프로그램 종료시 소멸 

객체 생성시 맴버 생성 

 공유의 특성

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

공유되지 않음 

 

<Static의 활용>

- 객체를 생성하지 않고 바로 호출이 가능한 유틸성이 있는 클래스들을 만들 때 사용한다.
ex) Math method -> int n  = Math.abs(-1)

-  (공유의특성) 오류가 잃어나면 안되는 값..들에 대해서 쓰인다.
ex) 선착순 10명만 구매가능한 온라인 상품엔 사람들이 몰려서 10명 이상의 사람들이 구매할 수도 있기때문에 static변수로 설정해주면 좋은듯..?

 

<Static의 제약조건>

- static Method는 오직 static 멤버만 접근 가능하다
?) 왜냐하면 static은 클래스 로딩시에 생성되기 때문에 non-static 멤버가 아직 생성되지 않은 시기이기 때문에 사용하면 오류가 남.

- non-static Method는 static 멤버 사용 가능

- this 사용 불가. (첫번째와 같은 이유인듯)

 

 

 

반응형