Book/자바의 정석

[자바의 정석] Chapter 6. 객체지향 프로그래밍 I - 오버로딩, 생성자

yo0oni 2023. 7. 14. 11:52

오버로딩

: 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것

 

오버로딩의 조건

  1. 메서드 이름이 같아야 한다.
  2. 매개변수의 개수 또는 타입이 달라야 한다.

반환 타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다.
가장 대표적인 오버로딩 ex) println()

 

오버로딩의 장점

  1. 이름만 보고도 메서드들의 기능을 예측 가능
  2. 메서드의 이름 절약!

 

생성자

: 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드
연산자 new가 인스턴스를 생성하는 것이지, 생성자가 인스턴스를 생성하는 것이 아니다.
생성자는 그저 인스턴스 변수들의 초기화에 사용되는 조금 특별한 메서드일 뿐이다.

 

생성자의 조건

  1. 생성자의 이름은 클래스의 이름과 같아야 한다.
  2. 생성자는 리턴 값이 없다.

 

기본 생성자

기본 생성자가 컴파일러에 의해서 추가되는 경우는 오직 클래스에 정의된 생성자가 하나도 없을 때이다.

 

생성자에서 다른 생성자 호출하기 - this(), this

  1. 생성자의 이름으로 클래스 이름 대신 this를 사용한다.
  2. 한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄에서만 호출이 가능하다.
Car(String color) { 
        door = 5; Car(color, "auto", 4); // 에러1. 생성자의 두 번째 줄에서 다른 생성자 호출 
                                        // 에러 2. this(color, "auto", 4);로 호출해야 함 
}

주의!
this(), this(매개변수)는 생성자, 같은 클래스의 다른 생성자를 호출할 때 사용한다.
this는 인스턴스 자신을 가리키는 참조변수로, 인스턴스의 주소가 저장되어 있다.