728x90
클래스에 포함된 변수를 의미하는 필드는 '클래스 변수(cv, class variable)', '인스턴스 변수(iv, instance variable)'로 분류된다. 이들은 static 키워드의 유무로 구분할 수 있다.
static변수를 선언하면 class변수고 선언하지 않으면 instance 변수다. 그리고 이들을 제외한 나머지 변수를 '지역변수(lv, local variable)'라고 한다.
에시와 함께 살펴보자
class FielEexample {
int instanceVariable; // 인스턴스 변수
static int classVariable; // 클래스변수
void method(){ // 메서드 선언
int localVariable = 0; // 지역변수
}
}
- 클래스 변수는 공통적인 저장공간을 가진다. 자동 초기화가 된다.
- 인스턴스 변수는 인스턴스가 가지는 각각의 고유한 속성을 저장하기 위한 변수로 new 생성자()를 통해 인스턴스가 생성될 때 만들어진다. 메모리의 힙 메모리 영역에 저장된다. 자동 초기화가 된다.
- 지역 변수는 메서드 내에 선언되고 메서드 블록 안에서만 사용이 가능한 변수다. 스택 메모리에 저장된다. 직접 초기화를 해야한다.
'Back-End > Java' 카테고리의 다른 글
[자바 / Java] 메서드 오버로딩(Method Overloading) (0) | 2022.09.02 |
---|---|
[자바 / Java] Static 키워드 (0) | 2022.09.02 |
[자바 / Java] 클래스(Class)와 객체(Object) (0) | 2022.09.02 |
[자바 / Java] 클래스, 객체와 인스턴스의 차이 (0) | 2022.09.02 |
[자바 / Java] 언더플로우(underflow)와 오버플로우(overflow) (0) | 2022.08.30 |