YS's develop story

JAVA ) static이라고 선언된 변수, 클래스 변수 본문

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선언이 붙은 변수를 클래스 변수라고 하며 클래스 변수는 어떠한 인스턴스에도 속하지 않고 

메모리 공간에 딱 하나 존재하는 변수입니다. 

즉 클래스 변수는 인스턴스 생성이전에 메모리에 존재하므로

생성자를 이용하여 클래스 변수를 초기화 하고자 하면 안됩니다.

 

 

 

 

 

Comments