본문 바로가기
java/개념

생성자

by unhyepnhj 2024. 5. 14.

생성자(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