필드와 변수 그리고 영역
카테고리: Java
필드란? 변수란?
클래스의 필드(field)란 클래스에 포함된 변수(Variable)를 말한다.
클래스를 정의할 때 클래스의 속성값을 저장하기 위해 선언하는 변수들을 필드라고 하고
변수에는 특정 값을 할당할 수 있고 이를 통해 객체의 특성을 만들어줄 수 있다.
필드는 클래스 안에서 선언 위치에 따라 3가지로 구분된다.
- 지역 변수 (local variable)
- 인스턴스 변수 (instance variable)
- 클래스 변수 (class variable)
변수의 종류
public class Basic_07_27_06 {
static int static_Variable; // 클래스 변수
int instance_Variable; // 인스턴스 변수
void method() {
int local_Variable; // 지역 변수
}
}
변수의 종류는 클래스 변수 / 인스턴스 변수 / 지역 변수 3개로 나뉜다.
변수 | 생성 시기 | 소멸 시기 | 저장 메모리 |
---|---|---|---|
클래스 변수 | 클래스가 메모리에 올라갈 때 | 프로그램 종료시 | 메서드 영역 |
인스턴스 변수 | 인스턴스 생성시 | 인스턴스 소멸시 | 힙 영역 |
지역 변수 | 블록 내 변수의 선언문 실행시 | 블록 벗어날 때 | 스택 영역 |
1. 클래스 변수 (static Variable)
클래스 영역에 위치한 (메서드 안이 아닌) 변수 중 static 제어자를 가진 변수를 클래스 변수라고 한다.
static 제어자가 붙으면 클래스 내에서 단 한번만 생성된다.
해당 클래스 내의 모든 인스턴스가 공유해야 하는 값을 유지할 때 사용한다.
2. 인스턴스 변수 (instance Variable)
클래스 영역에 위치한 (메서드 안이 아닌) 변수 중 static 제어자를 가지지 않은 변수를 인스턴스 변수라고 한다.
인스턴스 즉 객체마다 가져야 하는 고유의 값을 주기 위해 사용한다.
클래스 변수와 달리 인스턴스 변수를 생성시 인스턴스에 맞게 초기화된 변수가 새롭게 주어진다.
3. 지역변수 (local Variable)
클래스 영역 안에서 메서드, 생성자, 초기화 블럭 안에 있는 변수를 지역 변수라고 한다.
지역 변수는 해당 변수가 사용된 메서드, 생성자 내에서만 사용되고 밖을 벗어나면 소멸된다.
댓글남기기