객체를 생성했을 때 해당하는 함수를 한 번 호출함.
class 사람{
String 이름;
int 나이;
사람(){
이름 = "홍길동";
나이 = 22;
}
사람(String 이름, int 나이) {
this.이름 = 이름;
this.나이 = 나이;
}
입력 ① : 사람 a사람1 = new 사람();
=> 홍길동, 22
입력 ② : 사람 a사람2 = new 사람("홍길순, 55");
=> 홍길순, 55
생성자
는 인스터가 생성될 때 호출되는 인스턴스 변수 초기화 메서드입니다. 메서드처럼 클래스 내에 선언되고 구조도 유사하지만, 리턴값이 없다는 점이 다릅니다.
- 생성자의 이름은 클래스의 이름과 같아야 한다.
- 생성자는 리턴 값이 없다.
모든 클래스에는 반드시 하나 이상의 생성자가 정의되어야 합니다. 따로 정의하지 않는 경우, 컴파일러가 자동적으로 아래와 같은 내용의 기본 생성자를 추가하여 컴파일 합니다.
클래스이름(){} // 기본 생성자
Point() {} // Point 클래스의 기본 생성자
매개변수도 없고 아무런 내용도 없는 간단한 구조입니다. 클래스에 정의된 생성자가 하나도 없을 때만 컴파일러가 자동적으로 기본 생성자를 추가해줍니다.
같은 클래스의 멤버들 간에 서로 호출할 수 있는 것처럼 생성자 간에도 서로 호출이 가능합니다.
- 생성자의 이름으로 클래스이름 대신 this를 사용한다.
- 한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄에서만 호출이 가능하다.