생성자의 역할
생성자란 ? 객체를 생성할 때 객체의 초기화 작업을 위한 명령 구문
객체가 생성될 때 최초로 실행되는 메서드의 형태로서 생성 시에만 호출하여 수행
특징
생성자의 이름은 클래스명과 같아야함
생성자의 접근 제어자는 private, protected, public 올수 있으며, 생략가능
메서드 아님
리턴 타입표기 않함, 'void' 표기안함
생성자는 상속되지 않음
중복정의 가능
기본 생성자
기본생성자란? 클래스 정의 시 생성자 정의를 하지 않을 경우, JVM에서 자동으로 제공되는 생성자
public 클래스 이름() {}
특징
인자가 없음
생성자 코드 블록의 본문이 비어있음
'new 클래스이름();' 형태로 객체 생성
클래스 정의 시 최소 1개 이상의 생성자가 정의되면 기본 생성자는 제공되지 않음
기본 생성자가 없는 경우, 'new 클래스 기본생성자();'를 이용해 객체 생성할 수 없음
특별한 목적이 없는 경우, 클래스 정의 시에 기본 생성자도 함께 정의함
생성자 정의
생성자 정의 방법
메서드와 비슷
생성자 이름은 메서드 이름과 반드시 같아야 하고 리턴 타입을 표기 하지 않음
생성자 코드 블록의 본문은 객체 생성 시 초기화를 위한 수행 구문으로 구현
예) [접근제어자] 클래스이름 ([인자(Argument)리스트]} {초기화 수행구문}
생성자 중복 정의
클래스는 여러 개의 생성자를 정의할 수 있음
생성자의 이름은 같고, 인자를 다르게 하여 여러 개 정의 가능
인자의 개수, 순서, 데이터 타입을 다르게 하여 정의
생성자의 사용
클래스 정의 시, 생성자를 정의한 경우 해당 생성자를 지정하여 객체 생성이 가능
생성자를 호출할 때 인자의 데이터 타입, 순서, 개수 검사해서 해당 생성자 수행
기본 생성자를 이용한 객체 생성 방법
클래스이름 참조변수 = new 클래스생성자();
생성자를 지정하여 객체 생성 방법
클래스 이름 참조변수 = new 클래스생성자(초기화1, 초기화2,);