java↗7-15. 생성자(constructor)

메타플랫폼대표
|2024. 3. 28. 14:19
반응형

생성자(constructor)

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

인스턴스 = 객체(iv 묶음) 즉, iv를 초기화 하는 메서드가 생성자이다.

 

1. 객체생성 , 2. iv 초기화와 같은 행동을 계속 번갈아가면서 해줘야하는 불편함이 있다.

class Ex6_10_1 {
	public static void main(String args[]) {
		Time t = new Time(); // 객체생성
		t.hour = 12;         // iv 초기화
		t.minute = 34;
		t.second = 56;
	}
}

class Time{
	int hour;
	int minute;
	int second;
}

 

생성자 추가 후, 생성자 호출로 간단하게 나타낼 수 있다.

Time t = new Time(12 ,34 ,56);

리턴 값이 없을 때는 메서드 앞에 void를 붙이는데, 생성자인 경우에는 void를 붙이지 않는다. (항상 반환 값이 없기 때문)

 

기본 생성자(default constructor)

- 매겨번수가 없는 생성자

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

 

클래스이름() {} // 기본 생성자

Point() {} // Point클래스의 기본 생성자

 

cannot resolve symbol : 이름에 문제, 못찾겠다

 

기본생성자를 추가 해줘야 한다.

Data_2(int x) 위에 Data_2(){}를 넣는다.

 

class Data_1는 생성자가 하나도 없기 때문에, 컴파일러가 기본 생성자를 자동 추가해줘서 정상 실행되는 것이다.

		class Data_1{
			int value;
			Data_1(){}
		}

 

위 코드는 상단 클래스 Data_1의 기본 생성자를 컴파일러가 자동으로 생성해준다.

class Data_1 {
	int value;
}

class Data_2 {
	int value;

	Data_2(int x) {   // 매개변수가 있는 생성자.
		value = x;
	}
}

class Ex6_11 {
	public static void main(String[] args) {
		Data_1 d1 = new Data_1();
		Data_2 d2 = new Data_2(); // compile error발생
	}
}

 

반응형