YS's develop story
JAVA ) static이라고 선언된 변수, 클래스 변수 본문
안녕하세요 ~
오늘은 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선언이 붙은 변수를 클래스 변수라고 하며 클래스 변수는 어떠한 인스턴스에도 속하지 않고
메모리 공간에 딱 하나 존재하는 변수입니다.
즉 클래스 변수는 인스턴스 생성이전에 메모리에 존재하므로
생성자를 이용하여 클래스 변수를 초기화 하고자 하면 안됩니다.
'Java' 카테고리의 다른 글
Java ) java 상속관련 .. (0) | 2020.10.16 |
---|---|
JAVA error) Implicit super constructor is undefined, Constructor call must be the first statement in a constructor. (0) | 2020.10.14 |
JAVA ) java 2차원 배열 관련.. , 열혈 java 프로그래밍 309쪽 문제 2번 (0) | 2020.10.10 |
JAVA ) 클래스의 String toString() 메소드 (0) | 2020.09.29 |
Java ) Java 에서 문자열 생성을 위한 두 가지 방법의 차이점 (1) | 2020.09.19 |
Comments