본문 바로가기
언어와 프레임워크/Java

[JAVA] 클래스변수, 인스턴스변수, 지역변수

by Unagi_zoso 2022. 6. 25.

클래스에서의 변수는 세 종류로 나눌 수 있는데, 이들을 구분하는 기준은 '변수의 선언된 위치'라고 할 수 있다.

 

변수의 종류 선언위치 생성시기
클래스변수 클래스 영역 클래스가 메모리에 로딩될 때
인스턴스변수 인스턴스가 생성될 때
지역변수 클래스 영역 이외  변수 선언문이 수행되었을 때

 

   인스턴스변수

인스턴스변수는 클래스 영역에 선언되며 클래스의 인스턴스를 생성할 때 만들어진다. 그러니 항상 인스턴스를 먼저 만들어야한다. 모든 인스턴스는 각자의 고유한 저장공간을 가져 자신만의 값을 가질 수 있다.(다른 인스턴스로부터 독립적)

 

   클래스변수

변수 앞에 static 키워드를 붙이고 선언한다. 클래스변수는 인스턴스변수와 반대로 모든 인스턴스들이 공통적으로 공유하는 변수이다. 만들어지는 시점은 클래스가 메모리에 로딩될 때이며 프로그램이 종료될 때 까지 유지된다.

앞에 public을 붙이면 프로그램내 어디에서든 접근할 수 있는 전역변수의 성격을 가진다.

 

   지역변수

메서드 내에 선언되어 메서드 내부 스코프에서만 사용이 가능하다. 메서드가 사라지면 소멸된다.

 

 

* 자바의 정석 책을 보고 기술하였습니다.

 

읽어주셔 감사합니다.

잘못된 부분이나 부족한 부분이 있어 알려주신다면 감사하겠습니다

댓글