- 객체를 생성할 때 호출(자동 호출)하는 메서드 비슷한 것
- new 키워드와 함께 호출하는 것
- 일반 멤버 변수의 초기화나 객체 생성 시 실행돼야 하는 작업 정리
- 생성자는 상속되지 않는다.
- 작성 규칙
- 메서드와 비슷하나 리턴 타입이 없고 이름은 클래스 이름과 동일
제한자 클래스명(타입 변수명, 타입 변수명...)
{
// 멤버 변수 초기화 작업
}
기본 생성자(default constructor)
- 기본 생성자의 형태는 파라미터가 없고 구현부가 비어있는 형태
- 생성자 코드가 없으면 컴파일러가 기본 생성자 제공
파라미터가 있는 생성자
- 생성자의 목적이 일반 멤버 변수의 초기화 -> 생성자 호출 시 값을 넘겨줘서 초기화
- 파라미터가 있는 생성자를 만들면 기본 생성자는 추가되지 않는다.
this
- 참조 변수로써 객체 자신을 가리킴
- 참조변수를 통해 객체의 멤버에 접근했던 것처럼 this를 이용해 자신의 멤버에 접근 가능
- 용도
- 로컬 변수와 멤버 변수의 이름이 동일할 경우 멤버 변수임을 명시적으로 나타냄
- 명시적으로 멤버임을 나타낼 경우 사용
- this는 객체에 대한 참조이므로 static 영역에서는 this 사용 불가하다.
- 한 생성자에서 다른 생성자를 호출할 때 사용
- 반드시 첫줄에서만 호출이 가능
복사 생성자
public Person(Person person) {
this.name = person.name;
}// 복사 생성자