[Javaをガチャガチャ]オブジェクト作成プロセス


コンストラクション関数と変数のどちらが先に来ますか?
public class Object {
	/*
	 * B 객체 생성 
	 * - B 객체의 생성시점?
	 */	
	public static void main(String[] args) {
		A a = new A();
		C c = new C();
		B b = new B();
	}

}

class A {
	A(){
		System.out.println("클래스 A 생성");
	}
}

class B {
	B(){
		System.out.println("클래스 B 생성");
	}
	// 클래스 B에서는 a가 하나의 변수로 만들어짐 
	// -> 클래스 내부의 생성자보다 변수가 먼저 메모리에 올라간 다음에 나머지 생성자에 대한 부분이 만들어진다
	A a = new A(); 
}

class C {
	C(){
		System.out.println("클래스 C 생성");
	}
}

>> 클래스 A 생성
>> 클래스 C 생성
>> 클래스 A 생성
>> 클래스 B 생성
💾💾
Bクラスでは、aは変数として作成される.
したがって、クラス内のコンストラクション関数に対して、変数はまずメモリに格納され、残りのコンストラクション関数の一部が作成されます.