생성자와 오버로딩 그리고 this

생성자

객체가 생성될 ‘때마다’ 호출되는 것

클래스이름() {}

클래스에 아무런 생성자가 없다면 컴파일러가 기본 생성자는 넣어준다.
기본 생성자는 매개 변수도 없고, 구현부에서 아무런 일도 하지 않는다.

클래스이름(자료형 매개변수) {
    this.멤버변수 = 매개변수
}

명시적 생성자가 하는 일은 Field Initialization(필드 초기화). 명시적 생성자가 있으면 컴파일러에서 디폴트 생성자를 제공하지 않는다. 디폴트 생성자를 사용하려면 개발자가 디폴트 생성자를 추가로 직접 구현해야 한다.

오버로딩

매개변수가 다른 생성자를 두 개 이상 구현하거나, 매개변수의 개수 또는 타입이 다른 같은 이름을 가진 메소드를 정의하는 것.

this

자신의 메모리를 가리킨다.
생성자에서 다른 생성자를 호출할 수 있다.
인스턴스 자신의 주소를 반환한다.
this를 사용하면, 메서드의 인수나 변수에 필드와 같은 이름을 붙여도 그것들을 구분하여 사용할 수 있다.
this는 주로 생성자와 메소드의 매개변수 이름이 필드와 동일한 경우, 인스턴스 멤버인 필드임을 명시하고자 할때 사용된다.