프로그래밍 언어/자바(JAVA)

[JAVA 자바] Static Variable(변수), Method(함수)

나아가는중 2021. 2. 22. 17:59
반응형

JAVA 자바 Static Variable(변수)

Static 변수

Static 변수란 하나의 값을 여러 인스턴스가 공유를 할 수 있도록 하는 역할입니다.

 

자바에는 클래스 외부에는 어떤 변수도 선언을 할 수 없습니다.

모든 변수나 함수는 클래스 내부에 선언되어야 합니다.

그러면 정적 변수는 어떻게 선언하냐면, 'static'이라는 keyword를 붙여 선언합니다.

 

클래스(멤버) 변수는 힙 메모리에 저장되는 반면

static 변수는 데이터(상수) 영역 메모리에 저장되는 차이도 있습니다.

 

처음 프로그램이 로드될 때에 생성이 되며, 인스턴스와 독립적으로 인스턴스 생성 없이 사용할 수 있습니다.

사용할 때에는 다음과 같이 클래스 이름으로 참조하여 사용합니다.

Student.id = 001;
public class Student {
	public static int id;
}

클래스 이름이 아닌 인스턴스로도 접근이 가능하나, 경고표시가 나올 수 있습니다. 

Static 함수

static 함수도 기본적인 개념과 동작원리 등은 static 변수와 동일합니다.

 

다른 점으로는, static 변수는 모든 함수에서 사용이 가능하지만,  static 함수 내에서 static이 아닌 인스턴스(멤버) 변수를 사용할 수 없습니다.

인스턴스 변수는 new로 생성이 돼야만 생성되는데, static 함수는 그 이전에 메모리에 생성이 되는데, 인스턴스 변수는 당시에 생성이 안되어 있으므로 사용하면 안 됩니다.

 

static 함수는 static변수를 사용하기 위해 사용한다고 생각하시면 될 것 같습니다.

 

반응형