멤버변수
와 지역변수
로 나뉩니다.클래스 영역
입니다.메서드나 생성자 내부
입니다. (클래스 영역에서 생성되지 않는 변수는 모두 지역변수입니다.)멤버변수
는 또 다시 클래스 변수
와 인스턴스 변수
로 나뉩니다.static
으로 선언된 변수로 클래스가 메모리에 올라가는 시점에 초기화 됩니다.public class Tmp{
static int a; // 멤버변수 중 클래스 변수
int b; // 멤버변수 중 인스턴스 변수
public static void call(){
int c; // 지역변수
}
}
멤버변수는 값을 할당하지 않으면 해당 타입의 기본값으로 초기화가 일어납니다.
public class Tmp {
// 멤버변수
static int a;
String b;
public void call() {
System.out.println(a);
System.out.println(b);
}
public static void main(String[] args) {
Tmp tmp = new Tmp();
tmp.call();
}
}
지역변수는 값을 할당하지 않으면 컴파일 에러
가 발생합니다.
The local variable c may not have been initialized
라는 에러가 발생하게 됩니다.