JAVA

객체지향 생성자 (constructor), 기본 생성자(default constructor)

연93 2022. 9. 25. 15:16

인스턴스가 생성될 때마다 호출되는 '인스턴스 초기화 메서드'

인스턴스 생성시 수행할 작업(iv 초기화)에 사용

Time t = new Time(); //객체 생성
t.hour = 12;     // iv초기화
t.minut = 34;	 // iv초기화
t.second = 56;   // iv초기화
-------------------------------------------
Time t = new Time(12,34,56);

**생성자 이름이 클래스 이름과 같아야 한다.**

**리턴값이 없다 (void 안붙임)**

**모든 클래스는 반드시 생성자를 가져야 한다.**

**기본생성자**

매개변수가 없는 생성자

생성자가 하나도 없을 때만, 컴파일러가 자동 추가

클래스이름 () {} // 기본생성자
Point(){}        // Point클래스의 기본 생성자
class Data1 {
	int value;
	// Data1(){}  // 처음 기본생성자는 컴파일러가 추가해준다
}

class Data2{
	int value;
	
//	Data2(){} // 기본생성자 추가시 error 사라진다.
	Data2(int x){ //매개변수가 있는 생성자.
		value = x;
	}
}
class Data3{
	public static void main(String[] arg) {
		Data1 d1 = new Data1();
		Data2 d2 = new Data2(); // compile error
		//The constructor Data2() is undefined
	}
}