변수의 종류
멤버 변수 : 클래스 내부에서 선언
지역 변수 : 메서드 내부에서 선언, 매개변수도 지역 변수의 한 종류
변수의 값 초기화
- 멤버 변수(자동 초기화)
- 개발자가 초기값을 지정할 수 있음
- 초기값을 지정하지 않았을 경우
- int -> 0
- boolean -> false
- 참조형 -> null
// 멤버 변수 초기화
class Test {
int num;
String str;
boolean check;
String[] strArr = new String[5];
int[] numArr = new int[5];
}
public class Main {
public static void main(String[] args) {
Test test = new Test();
System.out.println("test.num = " + test.num); // 0
System.out.println("test.str = " + test.str); // null
System.out.println("test.check = " + test.check); // false
System.out.println("test.check = " + test.strArr[0]); // null
System.out.println("test.check = " + test.strArr[3]); // null
System.out.println("test.check = " + test.numArr[0]); // 0
System.out.println("test.check = " + test.numArr[3]); // 0
}
}
- 지역 변수(수동 초기화)
- 항상 직접 초기화해야 한다.
// 지역변수 초기화 안했을 경우
int num;
String str;
boolean check;
String[] strArr = new String[5];
int[] numArr = new int[5];
System.out.println("num = " + num); // error : variable num might not have been initialized
System.out.println("str = " + str); // error : variable str might not have been initialized
System.out.println("check = " + check); // error : variable check might not have been initialized
System.out.println("check = " + strArr[0]); // null
System.out.println("check = " + strArr[3]); // null
System.out.println("check = " + numArr[0]); // 0
System.out.println("check = " + numArr[3]); // 0