변수의 타입

byte : 정수
short : 정수
int : 정수
long : 정수
float : 소수
double : 소수
char : 문자 하나
boolean : 참 또는 거짓
String : 문자열
  • 변수는 데이터를 보관하는 장소
  • 변수는 사용하기전에 선언되어야 한다. 변수의 선언이란 이름과 타입을 정해주는 것
  • 변수는 적용 범위(scope)를 가진다.

변수의 종류

변수의 종류 선언위치 생성시기
클래스변수 클래스영역 클래스가 메모리에 올라갈 때
인스턴스 변수 클래스영역 인스턴스가 생성되었을 때
지역변수 클래스 영역 이외의 영역 변수 선언문이 수행되었을 때

인스턴스 변수

인스턴스는 독립적인 저장공간을 가지므로 서로 다른 값을 가질 수 있다. 인스턴스마다 고유한 상태를 유지해야하는 속성의 경우

클래스 변수

인스턴스 변수앞에 static을 붙이면 된다. 모든 인스턴스가 공통된 저장공간(변수)를 공유하게 된다. 그래서 클래스 변수를 공유변수라고도 한다. 한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야 하는 속성의 경우

지역변수

메서드 내에 선언되어 메서드내에서만 가능하면 메서드가 종료되면 소멸되어 사용할 수 없다.

static

  • 클래스를 설계할 때 맴버변수 중 모든 인스턴스에 공통적으로 사용해야 하는것에 static을 붙인다.
  • static이 붙은 맴버변수는 인스턴스를 생성하지 않아도 사용할 수 있다.
  • static이 붙은 메서드(함수)에서는 인스턴스 변수를 사용할 수 없다.
  • 메서드 내에서 인스턴스 변수를 사용하지 않는다면 static을 붙이는 것을 고려한다.

클래스 설계시 static 사용지침

  • 클래스의 맴버변수중 모든 인스턴스에 공통된 값을 유지해야 하는것이 있다면 static을 붙인다.
  • 메서드중에서 인스턴스 변수를 사용하지 않는 메서드에 대해서 static을 붙일 것을 고려한다.