클래스와 같은 이름의 메소드를 생성자라고 한다.
생성자는 객체 (인스턴스)를 생성할 때 실행이 된다. 가장 먼저 실행되어 초기화 작업을 해준다.
생성자가 없으면 자바에서 자동으로 디폴트 생성자를 만들어 준다.
사실은 Calculator c1 = new Calculator();
여기서 우항의 Calculator()
는 클래스 이름이 아니라 생성자를 뜻한다.
class Calculator {
int left, right;
public Calculator(int left, int right) {
this.left = left;
this.right = right;
}
public void sum() {
System.out.println(this.left + this.right);
}
.
.
.
public class CalculatorDemo1 {
public static void main(String[] args) {
Calculator c1 = new Calculator(10, 20);
c1.sum();
c1.avg();
생성자 덕분에 Calculator 객체를 사용하기 위해 사실상 반드시 필요한 작업이라고 할 수 있는 좌항과 우항의 값을 설정하는 과정을 객체 생성 과정에서 강제할 수 있게 된다. 절차에 필수적인 작업을 포함시킨다는 것은 중요한 의미를 갖게 된다.