static

bbbooo·2023년 6월 6일
0

static

static 선언 시, 메모리에 자동으로 고정되어 프로그램이 끝날때까지 공유한다.

다음과 같이 코드가 작성되어있디고 가정한다.

class Main{
    public static void main(String[] args) {
        Milk m0 = Milk(0, "우유0");
        Milk m1 = Milk(1, "우유1");
        Milk m2 = Milk(2, "우유2");
    }
}

class Milk{
    static int cnt = 0;
    // int cnt = 0;
    
    int num;
    String name;
    
    Milk(int num, String name){
        this.num = num;
        this.name = name;
        cnt++;
    }
}

해당 코드 내에서 static을 선언하지 않고 기본 타입인 int cnt = 0; 라고 하면 실행하면


우유0 
cnt = 0 
cnt = 1

우유1
cnt = 0 
cnt = 1

우유2
cnt = 0
cnt = 1

값이 계속 0으로 초기화되면서 우리가 원하는, 객체가 3개라는 것을 인식하지 못하게 한다. 이럴때 static을 사용하면 어떻게 될까?

cnt = 0 
ㅡㅡㅡ 
우유0
cnt = 1

우유1
cnt = 2

우유2
cnt = 3
ㅡㅡㅡ

처음에 cnt = 0이라는 값을 고정시키고 계속 유지함으로써, 코드 내에서 값이 공유될 수 있게끔 만들어줄 수 있다.





결론

  • static은 공유를 위한 키워드이다. '공유' 라는 키워드 집중하자!

0개의 댓글