변수는 멤버 변수(클래스 변수, 인스턴스 변수), 지역 변수로 나뉜다.
이렇게 변수의 종류를 결정하는 중요한 요소는 변수의 선언된 위치이다.
변수의 선언된 위치에 따라 종류를 알아보자.
변수의 종류 |
선언 위치 |
생성 시기 |
클래스 변수 (class variable) |
클래스 영역 |
클래스가 메모리에 올라갈 때 |
인스턴스 변수 (instance variable) |
인스턴스가 생성되었을 때 | |
지역 변수 (local variable) |
클래스 영역 이외의 영역 (메서드, 생성자, 초기화 블럭 내부) |
변수 선언문이 수행되었을 때 |
인스턴스 변수
· 클래스 영역에 선언되며, 클래스의 인스턴스를 생성할 때 만들어짐.
· 인스턴스는 독립적인 저장공간을 가지므로 서로 다른 값을 가질 수 있음.
· 인스턴스마다 고유한 상태를 유지해야하는 경우 인스턴스 변수로 선언.
클래스 변수
· 선언 방법은 인스턴스 변수 앞에 static을 붙여주면 됨.
· 인스턴스를 생성하지 않고도 언제라도 바로 사용할 수 있음.
ex) 클래스이름.클래스변수
· 클래스가 로딩될 때 생서오디어 프로그램이 종료될 때까지 유지.
· 모든 인스턴스가 공통된 저장공간(변수)을 공유함. 그래서 공유 변수(Shared variable)라고도 함.
· 한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야할 경우 클래스 변수로 선언해야 함.
지역 변수
· 메서드 내에 선언되어 메서드 내에서만 사용가능.
· 메서드가 종료되면 소멸 됨.
· for문, while문의 블럭({ }) 내에 선언된 지역 변수는 블럭 내에서만 사용 가능하며, 블럭을 벗어나면 소멸됨.
· 반드시 초기화 하고 사용.
[참고] 자바의 정석
'프로그래밍 > Java' 카테고리의 다른 글
오버로딩과 오버라이딩 (0) | 2017.08.14 |
---|---|
JVM의 메모리 구조 (0) | 2017.08.13 |
클래스와 객체와 인스턴스 (0) | 2017.08.11 |
변수 타입에 따른 기본값 (0) | 2017.08.05 |
객체 지향 프로그래밍이란? (0) | 2017.06.04 |
WRITTEN BY
- 김치치즈스마일
세계정복!