6.2.1 변수의 종류
- 클래스 변수
- 멤버변수 중 static이 붙은 변수
- 인스턴스 변수
- 멤버변수 중 static이 붙지 않은 변수
- 지역변수
- 메서드 내에 정의된 변수
변수의 종료 선언위치 생성 시기 클래스 변수 클래스 영역 클래스가 메모리에 올라갔을 때 인스턴스 변수 클래스 영역 인스턴스가 생성되었을 때 지역변수 메서드 생성자
- 메서드 내에 정의된 변수
6.2.2 인스턴스 변수(Instance variable)
- 클래스의 인스턴스가 새로 생성될 때 마다 만들어진다.(new)
- 인스턴스는 독립적인 저장공간을 가지므로 서로 다른 값을 가지게 된다.
- 인스턴스마다 고유한 상태를 유지해야하는 속성의 경우, 인스턴스 변수로 선언한다.
6.2.3 클래스 변수(class variable)
- 변수 앞에 static을 붙여 선언
- 참조변수 선언이나 객체의 생성과 같이 클래스의 정보가 필요할 때, 클래스가 메모리에 로딩되는 과정에서 최초 1회 클래스 변수가 만들어 진다.
- 모든 인스턴스가 공통된 저장공간을 공유하므로, 모든 인스턴스들이 공통적인 값을 유지해야 하는 경우 선언한다.
- 클래스가 메모리에 로딩될때 생성되고 프로그램 종료시 삭제 되므로 전역변수의 성격을 갖는다.
class Card{
String kind; //무늬
int number; //숫자
static int width; //폭
static int height; //높이
/*
각 카드마다 무늬와 숫자는 다르기 때문에 '인스턴스 변수'로 선언한다.
각 카드마다 폭과 높이는 같기 때문에 '클래스 변수'로 선언한다.
*/
}
6.2.4 지역변수(local variable)
- 메서드 내에서 선언되고, 메서드 내에서만 사용 가능하다.
- 메서드 종료시 소멸
'자바의 정석 정리' 카테고리의 다른 글
자바의 정석 - 6.4 JVM의 메모리 구조 (0) | 2022.06.10 |
---|---|
자바의 정석 - 6.3 메서드 (0) | 2022.06.10 |
자바의 정석 - 6.1 객체지향언어 (0) | 2022.06.10 |
자바의 정석 - 5.3 가변 배열 (0) | 2022.06.07 |
자바의 정석 - 5.2 다차원 배열 (0) | 2022.06.07 |