자바 변수
변수에 대한 정리
변수
변수의 타입
byte : 정수
short : 정수
int : 정수
long : 정수
float : 소수
double : 소수
char : 문자 하나
boolean : 참 또는 거짓
String : 문자열
- 변수는 데이터를 보관하는 장소
- 변수는 사용하기전에 선언되어야 한다. 변수의 선언이란 이름과 타입을 정해주는 것
- 변수는 적용 범위(scope)를 가진다.
변수의 종류
변수의 종류 | 선언위치 | 생성시기 |
---|---|---|
클래스변수 | 클래스영역 | 클래스가 메모리에 올라갈 때 |
인스턴스 변수 | 클래스영역 | 인스턴스가 생성되었을 때 |
지역변수 | 클래스 영역 이외의 영역 | 변수 선언문이 수행되었을 때 |
인스턴스 변수
인스턴스는 독립적인 저장공간을 가지므로 서로 다른 값을 가질 수 있다. 인스턴스마다 고유한 상태를 유지해야하는 속성의 경우
클래스 변수
인스턴스 변수앞에 static을 붙이면 된다. 모든 인스턴스가 공통된 저장공간(변수)를 공유하게 된다. 그래서 클래스 변수를 공유변수라고도 한다. 한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야 하는 속성의 경우
지역변수
메서드 내에 선언되어 메서드내에서만 가능하면 메서드가 종료되면 소멸되어 사용할 수 없다.
static
- 클래스를 설계할 때 맴버변수 중 모든 인스턴스에 공통적으로 사용해야 하는것에 static을 붙인다.
- static이 붙은 맴버변수는 인스턴스를 생성하지 않아도 사용할 수 있다.
- static이 붙은 메서드(함수)에서는 인스턴스 변수를 사용할 수 없다.
- 메서드 내에서 인스턴스 변수를 사용하지 않는다면 static을 붙이는 것을 고려한다.
클래스 설계시 static 사용지침
- 클래스의 맴버변수중 모든 인스턴스에 공통된 값을 유지해야 하는것이 있다면 static을 붙인다.
- 메서드중에서 인스턴스 변수를 사용하지 않는 메서드에 대해서 static을 붙일 것을 고려한다.