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
cnt = 0
ㅡㅡㅡ
우유0
cnt = 1
우유1
cnt = 2
우유2
cnt = 3
ㅡㅡㅡ
처음에 cnt = 0
이라는 값을 고정시키고 계속 유지함으로써, 코드 내에서 값이 공유될 수 있게끔 만들어줄 수 있다.
결론
static
은 공유를 위한 키워드이다. '공유' 라는 키워드 집중하자!