오버로딩
: 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것
오버로딩의 조건
- 메서드 이름이 같아야 한다.
- 매개변수의 개수 또는 타입이 달라야 한다.
반환 타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다.
가장 대표적인 오버로딩 ex) println()
오버로딩의 장점
- 이름만 보고도 메서드들의 기능을 예측 가능
- 메서드의 이름 절약!
생성자
: 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드
연산자 new가 인스턴스를 생성하는 것이지, 생성자가 인스턴스를 생성하는 것이 아니다.
생성자는 그저 인스턴스 변수들의 초기화에 사용되는 조금 특별한 메서드일 뿐이다.
생성자의 조건
- 생성자의 이름은 클래스의 이름과 같아야 한다.
- 생성자는 리턴 값이 없다.
기본 생성자
기본 생성자가 컴파일러에 의해서 추가되는 경우는 오직 클래스에 정의된 생성자가 하나도 없을 때이다.
생성자에서 다른 생성자 호출하기 - this(), this
- 생성자의 이름으로 클래스 이름 대신 this를 사용한다.
- 한 생성자에서 다른 생성자를 호출할 때는 반드시 첫 줄에서만 호출이 가능하다.
Car(String color) {
door = 5; Car(color, "auto", 4); // 에러1. 생성자의 두 번째 줄에서 다른 생성자 호출
// 에러 2. this(color, "auto", 4);로 호출해야 함
}
주의!
this(), this(매개변수)는 생성자, 같은 클래스의 다른 생성자를 호출할 때 사용한다.
this는 인스턴스 자신을 가리키는 참조변수로, 인스턴스의 주소가 저장되어 있다.
'Book > 자바의 정석' 카테고리의 다른 글
[자바의 정석] Chapter 7. 객체지향 프로그래밍 II - 추상메서드, 인터페이스 (0) | 2023.07.14 |
---|---|
[자바의 정석] Chapter 7. 객체지향 프로그래밍 II - 오버라이딩, 접근 제어자, 다형성 (0) | 2023.07.14 |
[자바의 정석] Chapter 6. 객체지향 프로그래밍 I - 클래스, 인스턴스, 메서드 (0) | 2023.07.14 |
[자바의 정석] Chapter 5. String 배열, 다차원 배열 (0) | 2023.07.14 |
[자바의 정석] Chapter 5. 배열(Array) (0) | 2023.07.14 |