[JAVA / 객체지향] 선언위치 변수종류

2024. 1. 8. 15:09


ㅇ Q1. 선언위치? 영역?

변수의 선언위치가 변수의 종류와 범위를 결정한다.
  • 제목이 일단 선언위치에 따른 변수의 종류이다.
  • 그렇다면 선언위치를 먼저 보자면 클래스 영역이 있고, 메서드 영역이 있다. 
  • 클래스 영역은 한 클래스 처음과 끝 사이에 있는 영역을 의미한다.
  • 메서드 영역은 메서드 안에 있는 영역을 의미한다.
  • 따라서 클래스 영역 안에 변수들의 선언과 메서드의 선언이 있을 것이다.

ㅇ Q2. 변수의 종류

변수의 종류 (I.V / C.V / L.V)
  • 위의 사진을 다시 가져오면 다음과 같다.
  • 영역에 따라서 변수의 종류가 달라지며, 클래스변수와 인스턴스 변수는 static 이 붙는지에 따라 달라진다.

 

인스턴스 변수 (Instance Variable)

  • 각 인스턴스의 개별적인 저장공간이라고 생각하면된다.
  • 이것을 통해서 객체는 인스턴스 변수를 묶어놓은 것 이라고 생각해도 된다.
  • 이는 인스턴스를 생성할때 생성되며, 참조변수가 없을 때 가비지 컬렉터에 의해서 자동 제거된다.

 

클래스 변수 (Class Variable)

  • static + 인스턴스 변수 이다.
  • 같은 클래스의 모든 인스턴스들이 공유하는 변수이다.
  • 인스턴스 생성이 필요없으며, 클래스가 로딩될 때 생성되고 프로그램이 종료될 때 소멸한다.
  •  

지역 변수 (Local Variable)

  • 메서드 내에서 선언되며, 메서드의 종료와 함께 소멸한다.
  • 블럭내에 선언된 지역변수는 블럭을 벗어나면 소멸한다.

 


ㅇ Q3. 클래스 변수와 인스턴스 변수

 

" CV는 다른 공간에 1개만 존재하지만, IV는 각 객체마다 존재한다."

 

BELATED ARTICLES

more