선언위치에 따른 변수의 종류
-
변수 종류는 세 가지이다.
- 클래스변수(class variable)
- 인스턴스변수(instance variable)
- 지역변수(local variable)
변수의 종류 선언위치 생성시기 클래스 변수 클래스 영역 클래스가 메모리에 올라갈 때 인스턴스 변수 클래스 영역 인스턴스가 생성될 때 지역 변수 메서드 영역 변수 선언문이 수행될 때
-
클래스 변수는 모든 인스턴스가 공통된 저장공간을 공유한다. 한 클래스의 모든 인스턴스들이 같은 값을 가진다. (자바스크립트의 프로토타입 같다.) 앞에 static이 붙는다.
- 클래스 변수는 객체생성 없이
클래스이름.클래스변수
로 직접 사용가능하다.
- 클래스 변수는 객체생성 없이
-
인스턴스 변수는 독립적인 저장공간을 가지므로 서로 다른 값을 가진다. 인스턴스마다 고유한 상태를 가질 수 있다.
-
예를 들어 카드의 경우 카드의 숫자나 모양은 인스턴스 변수로 선언하고, 카드의 높이나 너비는 클래스 변수로 선언할 수 있다.