Java
JAVA ) static이라고 선언된 변수, 클래스 변수
Yusang
2020. 10. 4. 08:22
안녕하세요 ~
오늘은 java에서 static이라고 선언된 변수, 클래스 변수에 대한 내용을 정리 했습니다 !!
바로 아래코드를 살펴보죠.
class JavaPractice {
public static void main(String[] args) {
Class class1 = new Class();
class1.getCheck();
Class class2 = new Class();
class2.getCheck();
Class class3 = new Class();
class3.getCheck();
}
}
class Class{
private int set=0;
Class(){
set++;
}
void getCheck(){
System.out.println(set);
}
}
위 코드의 실행결과는 아래와 같습니다.
그럼 아래와 같이 set변수에 static선언을 해서 결과를 확인해 봅시다.
class JavaPractice {
public static void main(String[] args) {
Class class1 = new Class();
class1.getCheck();
Class class2 = new Class();
class2.getCheck();
Class class3 = new Class();
class3.getCheck();
}
}
class Class{
static private int set=0;
Class(){
set++;
}
void getCheck(){
System.out.println(set);
}
}
결과는 아래와 같습니다.
이를 통해서 우리는 static이 선언된 변수는 인스턴스가 생성될때 마다 초기화 되는 것이 아니라
인스턴스 생성 이전에 존재함을 알 수 있죠.
정리를 하자면...
이러한 static선언이 붙은 변수를 클래스 변수라고 하며 클래스 변수는 어떠한 인스턴스에도 속하지 않고
메모리 공간에 딱 하나 존재하는 변수입니다.
즉 클래스 변수는 인스턴스 생성이전에 메모리에 존재하므로
생성자를 이용하여 클래스 변수를 초기화 하고자 하면 안됩니다.