반응형
static 변수란 다른 용어로 '정적 변수'라고도 한다. static 변수는 자바뿐만 아니라 다른 언어에서도 비슷한 개념으로 사용하고 있는 변수로서 자바에서는 다른 멤버 변수처럼 클래스 내부에 선언한다.
변수를 선언할 때 자료형 앞에 static 예약어를 사용한다.
[문법]
stiatic 예약어 자료형 변수이름;
[예시]
static int serialNum;
static변수는 클래스 내부에 선언하지만, 다른 멤버 변수처럼 인스턴스가 생성될 때마다 새로 생성되는 변수가 아니다.
static 변수는 프로그램이 실행되어 메모리에 올라갔을 때 한번 메모리 공간이 할당된다. 그리고 그 값은 모든 인스턴스가 공유한다.
일반 멤버 변수는 인스턴스가 생성될 때마다 새로 생성되어 각각 다른 속성(예-studentName)을 가지게 되지만, static으로 선언한 변수는 인스턴스 생성과 상관없이 먼저 생성되고 그 값을 모든 인스턴스가 공유하게 되는 것 입니다.
이런 이유 때문에 static 변수를 클래스에 기반한 변수라고 해서 '클래스 변수(class variable)'라고 한다.
지금까지 static 변수, 정적변수, 클래스 변수라고 세가지 용어를 사용했습니다. 셋 모두 자바에서 static 변수를 의미합니다.
자바에서 static 변수를 클래스 변수라고 하는 이유는 인스턴스마다 생성되는 변수가 아니라 클래스에 속해 한번만 생성되는 변수이고 이를 여러 인스턴스가 공유하기 때문이다.
반응형
'Language > JAVA' 카테고리의 다른 글
[JAVA]상속과 다형성 (0) | 2020.06.22 |
---|---|
[JAVA]클래스 메서드 (0) | 2020.06.18 |
[JAVA]생성자에서 다른 생성자를 호출하는 this (0) | 2020.06.17 |
[JAVA] 정보 은닉(Information Hiding) (0) | 2020.06.16 |
생성자 오버로드(Constructor Overlaod) (0) | 2020.06.15 |
댓글