클래스 변수
, 인스턴스 변수
, 지역변수
변수의 선언 위치
멤버변수
를 제외한 나머지 변수들은 모두 지역변수
stasic
이 붙은 것은 클래스 변수
, 붙지 않은 것은 인스턴스 변수
임변수의 종류 | 선언위치 | 생성시기 |
---|---|---|
클래스 변수(class variable) | 클래스영역 | 클래스가 메모리에 올라갈 때 |
인스턴스 변수(instance variable) | 클래스영역 | 인스턴스가 생성되었을 때 |
지역변수(local variable) | 클래스 영역 이외의 영역(메서드,생성자, 초기화 블럭 내부) | 변수 선언문이 수행되었을 때 |
static
붙이기'클래스이름.클래스변수'
와 같은 형식으로 사용<카드의 속성을 이용한 예시>
class Card {
String kind; //무늬(인스턴스 변수-개별속성)
int number; //숫자(인스턴스 변수-개별속성)
static int width = 100; //폭(클래스 변수-공통속성)
static int height = 250; //높이(클래스 변수-공통속성)
}
▶ 인스턴스 변수는 인스턴스가 생성될 때 마다 생성되므로 인스턴스마다 각기 다른 값을 유지
▶ 클래스 변수는 모든 인스턴스가 하나의 저장공간을 공유하므로, 항상 공통된 값 유지