public static void main(String[] args) {
/*
Test12 ob;
ob.a=10; // 컴파일 오류. ob가 초기화가 되어 있지 않음.
*/
/*
Test12 ob=null; // null로 초기화. null은 메모리가 할당되지 않은 상태
// ob.a=10; // 런타임오류 : NullPointerException
ob=new Test12();
ob.a=10;
*/
// 객체 배열
Test12 []tt=new Test12[5]; // Test12 객체를 5개 저장 할 수 있는 배열
// 즉, 객체를 저장할 수 있는 배열 5개를 만들거야 라고 선언만 한 상태!!!!
// 각 개체의 메모리가 할당 된 것은 아님.
// 할당은 생성자를 호출할 경우에만 메모리가 할당됨.
// Test12 t1=null, t2=null, t3=null, t4=null, t5=null; 과 유사
/*
// 런타임 오류
// NullPointerException
tt[0].a = 10;
tt[0].print();
*/
// 객체 배열의 메모리 할당
for(int i=0; i<tt.length; i++) {
tt[i] = new Test12();
}
// ★★★ 객체 배열은 하나씩 꼭 new 클래스명(); 으로 메모리를 할당 받아야 한다.
tt[0].a = 10;
tt[0].print();
}
}
class Test12 {
int a;
int b;
public void print() {
System.out.println(a+":"+b);
}
}