2016-03-28

11. java - static

static 변수 

class AAA{
    static int num=0;
    public AAA(){
        num++;
    }
}
class MainClass{
    public static void main(String[] args){
        AAA a1 = new AAA();
        AAA a2 = new AAA();
        AAA a3 = new AAA();
    }
}


 

한 클래스의 모든 인스턴스가 공유하는 변수                           
- 메모리 공간에 하나만 존재
* 언제 사용? 
   : 인스턴스간의 데이터 공유가 필요한 경우

* 접근 방법 

   1) 인스턴스의 이름으로
   2) 해당 클래스의 이름으로 
    ... 1) 의 경우 인스턴스 변수 접근 방법과 구분 되지 않기 때문에 2)로 접근

* 초기화 

    : JVM에 의해 클래스가 메모리 공간에 올라가는 순간
      (java 는 필요한 만큼만 메모리 공간에 올려 사용!!)  


static 메소드

 - 클래스의 모든 인스턴스가 호출 가능
 - 인스턴스를 생성하지 않아도 호출 가능
 - 인스턴스 변수에 접근 불가 ... 해당 클래스의 인스턴스가 모두 공유하는 메소드 이기 때문
    
 * 언제 사용?
    : 인스턴스 변수를 이용하지 않아도 되는 일인 경우, 기능만 제공하는 경우!


댓글 없음 :

댓글 쓰기