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);
	}
}

+ Recent posts