JAVA 기초 : static 변수

mark1106·2023년 7월 17일
0

JAVA

목록 보기
7/11

static 변수란?

클래스 변수라고도 불리며 클래스 수준에서 공유되는 변수이다.

static 변수는 모든 인스턴스들이 공유하며 사용할 수 있으며, 클래스 내에서 한 번 값이 할당되면 클래스 내의 모든 인스턴스들이 동일한 값을 참조하게 된다.

static 변수 장점
1. 데이터의 공유 : 객체 간에 효율적인 데이터 공유
2. 상수 값 저장 : 중복을 피하고 코드의 가독성을 높힘
3. 메모리 절약 : 여러 개의 객체를 생성하더라도 하나의 메모리 공간만 사용

실제 데이터 영역에서 static 변수가 생성되면 인스턴스 A,B,C는 각각 static 변수의 메모리를 참조한다.

코드를 통해 알아보자.

counter 클래스에서 public static int count를 선언해보자.

main함수에서 c1 객체를 생성하고, c2 객체를 생성하고 두 값을 출력해보면 10으로 똑같은 것을 알 수 있다.

c1.count, c2.count 와 같이 인스턴스의 멤버로 접근이 가능하긴 하지만 사실 count는 모든 인스턴스들의 클래스 멤버이다.

따라서 Counter.count와 같이 (클래스명.변수명)형식으로 표현하는 것이 인스턴스들의 공유 변수, static 변수라는 것을 쉽게 나타낼 수 있다.

위 그림을 보면 Student객체를 생성하지 않고 Student 클래스의 static 변수인 serialNum가 출력되는 것을 볼 수 있다.

이를 통해 static 변수는 인스턴스를 생성할 때 생성되는 것이 아닌, 인스턴스 생성 전 정의되어 있다는 것을 알 수 있다.
정확히 말하면, static 변수는 프로그램 실행 시 정적 생성되는 변수이다.

0개의 댓글