생성자(constructor): 객체가 생성될 때 객체의 초기화를 위해 실행되는 메소드
생성자 선언 및 활용
- 생성자는 객체가 생성되는 순간에 자동으로 호출되는 메소드
- 객체에 필요한 초기화를 실행하는 코드 포함
1. 생성자의 이름은 클래스 이름과 동일
public class Circle{
public Circle(int r, Strint n){...}
}
2. 생성자는 여러 개 작성(overloading) 가능
- 매개변수의 개수와 타입이 다르다면 클래스 내에 동일한 이름의 생성자를 여러 개 둘 수 있음
public class Circle{
public Circle(){...}
public Circle(int r){...}
public Circle(int r, String n){...}
}
3. 생성자는 new를 통해 객체를 생성할 때 객체 당 한 번만 호출됨
- 객체 생성은 반드시 new를 통해서만 이루어지며, 생성자는 이 때 자동으로 한 번만 호출
- 객체가 생성될 때 반드시 호출되므로 하나 이상 선언되어야 함
- 개발자가 생성자를 작성하지 않았으면 컴파일러가 자동으로 기본 생성자(생성자 이름(){ }) 삽입
Circle pizza = new Circle(); //생성자 Circle() 호출
Circle donut = new Circle(2, "도넛"); //생성자 Circle(int r, String n) 호출
4. 생성자의 목적은 객체 초기화
Circle pizza = new Circle(10, "피자"); //생성자 Circle(int r, String n) 호출
- pizza 객체의 radius를 10으로, name을 "피자"로 초기화
기본 생성자(default constructor)
- 매개변수와 실행 코드 없이 단순 리턴하는 생성자
class Circle{
public Circle(){} //기본 생성자
}
- 객체가 생성될 때 생성자가 반드시 실행
- 생성자가 하나도 선언되지 않으면 컴파일러는 기본 생성자를 자동으로 삽입
- 생성자가 하나라도 존재하는 클래스에는 컴파일러가 기본 생성자를 삽입하지 않음
예제 4-3 2개의 생성자를 가진 다음 코드의 실행 결과는?
예제 4-4 제목과 저자를 나타내는 title과 author 필드를 가진 Book 클래스를 작성하고, 생성자를 작성하여 필드를 초기화
'java > 개념' 카테고리의 다른 글
객체 배열 (0) | 2024.05.20 |
---|---|
this 레퍼런스, 객체 치환 (0) | 2024.05.14 |
클래스와 객체 (0) | 2024.05.14 |
객체 지향과 자바 (0) | 2024.05.11 |
오름차순/내림차순 정수 정렬 (0) | 2024.05.11 |