멤버 변수인 인스턴스 변수는 초기화를 해주지 않아도 알아서 기본값으로 초기화가 이루어져 사용이 가능하다. 그러나 지역변수는 사용 전 반드시 초기화가 필요하다.
각 타입의 자동 초기화 시 기본값
boolean -> false
char -> 공백 1칸
byte,short,int -> 0
long -> 0L
float -> 0.0f
double -> 0.0d or 0.0
referenced variable -> null
예시)
package study;
public class test1 {
//필드 선언할때 초기화 안해준 상태에서 다른 클래스에서 매개변수 초기화없이 생성할때 실험
public int num; // 0으로 자동초기화
public String str;// null 로 자동초기화
public void func1(){
int funcNum1;
int funcNum2 = funcNum1; // 에러 발생!! => 지역변수는 초기화 필요
}
package study;
public class study {
public static void main(String[] args) {
// TODO Auto-generated method stub
test1 exam1 = new test1();
System.out.println(exam1.num);
System.out.println(exam1.str);
}
}
<출력 결과>
0
null