- 선언 위치에 따른 변수의 종류 = 3가지 타입
- 인스턴스 변수 (
iv
)
- 클래스 변수(
cv
/ static 변수, 공유 변수)
- 지역 변수 (
lv
)
class Variables { - 클래스 영역
int iv;
static int cv;
void method() { - 메소드 영역
int lv = 0;
}
}
- 클래스 영역 : 선언문만 가능
- cv =
static
+ iv
iv
-> 인스턴스가 생성됐을때 만들어짐. (객체 생성)
클래스영역에 선언되면 기본적으로 iv
인데 여기에 static 붙이면 cv
임.
- 객체 : 프로그래밍 관점에서
iv
(변수 여러개)를 묶어 놓은 것! 으로 생각하면 편함.
cv
: 클래스가 메모리에 올라갈 때 = 즉, 필요할 때! 자동으로 만들어짐 ( 객체생성 안해도 됨 )
-> 클래스 : 설계도, 객체가 만들어질 때 설계도가 먼저 있어야 만들 수 있음.
iv
는 객체 생성이 필요하고, cv
는 객체 생성을 하지 않아도 됨 (차이점)
-> cv
는 아무때나 사용가능
lv
는 메소드 종료시 자동 제거. 메소드 범위(scope)내에서만 사용 가능