[JAVA / 객체지향] 선언위치 변수종류
2024. 1. 8. 15:09
ㅇ Q1. 선언위치? 영역?
변수의 선언위치가 변수의 종류와 범위를 결정한다.
![](https://blog.kakaocdn.net/dn/cBjvbr/btsC4bEnVMn/F1K4ypxIWY0RHFw4oQZrn0/img.png)
- 제목이 일단 선언위치에 따른 변수의 종류이다.
- 그렇다면 선언위치를 먼저 보자면 클래스 영역이 있고, 메서드 영역이 있다.
- 클래스 영역은 한 클래스 처음과 끝 사이에 있는 영역을 의미한다.
- 메서드 영역은 메서드 안에 있는 영역을 의미한다.
- 따라서 클래스 영역 안에 변수들의 선언과 메서드의 선언이 있을 것이다.
ㅇ Q2. 변수의 종류
변수의 종류 (I.V / C.V / L.V)
![](https://blog.kakaocdn.net/dn/cBjvbr/btsC4bEnVMn/F1K4ypxIWY0RHFw4oQZrn0/img.png)
- 위의 사진을 다시 가져오면 다음과 같다.
- 영역에 따라서 변수의 종류가 달라지며, 클래스변수와 인스턴스 변수는 static 이 붙는지에 따라 달라진다.
인스턴스 변수 (Instance Variable)
- 각 인스턴스의 개별적인 저장공간이라고 생각하면된다.
- 이것을 통해서 객체는 인스턴스 변수를 묶어놓은 것 이라고 생각해도 된다.
- 이는 인스턴스를 생성할때 생성되며, 참조변수가 없을 때 가비지 컬렉터에 의해서 자동 제거된다.
클래스 변수 (Class Variable)
- static + 인스턴스 변수 이다.
- 같은 클래스의 모든 인스턴스들이 공유하는 변수이다.
- 인스턴스 생성이 필요없으며, 클래스가 로딩될 때 생성되고 프로그램이 종료될 때 소멸한다.
지역 변수 (Local Variable)
- 메서드 내에서 선언되며, 메서드의 종료와 함께 소멸한다.
- 블럭내에 선언된 지역변수는 블럭을 벗어나면 소멸한다.
ㅇ Q3. 클래스 변수와 인스턴스 변수
" CV는 다른 공간에 1개만 존재하지만, IV는 각 객체마다 존재한다."
'STUDY > JAVA' 카테고리의 다른 글
[JAVA / 객체지향] 메서드 (0) | 2024.01.10 |
---|---|
[JAVA / 객체지향] 클래스 변수 / 인스턴스 변수 (1) | 2024.01.10 |
[JAVA / 객체지향] 클래스의 정의 (0) | 2024.01.08 |
[JAVA / 객체지향] 객체배열 (0) | 2024.01.08 |
[ JAVA / 객체지향 ] 인스턴스 생성과 사용 (0) | 2024.01.06 |