본문 바로가기
Web Programing/JAVA

자바 클래스 생성자(Constructor)란? 종류와 특징

by 기록하는 초보 2024. 2. 25.
반응형

 

생성자(Constructor)란?

자바의 객체 지향 프로그래밍에서 클래스의 생성자는 객체 생성 시 제일 먼저 호출되는 특수한 메서드입니다. 객체가 고유한 상태를 초기화하고 정상적인 작업을 수행항 수 있게 준비하는 매우 중요한 역할을 수행합니다. 생성자는 클래스로부터 객체를 생성할 때 new 연산자와 함께 호출되어 객체의 필드를 초기화하고, 메서드를 호출해 객체를 사용할 준비를 하는 특별한 블록입니다.

 

생성자는 왜 필요한가?

객체의 상태는 필드(변수)에 의해 결정됩니다. 필드에 특정 값을 설정함으로써 객체마다 다른 상태를 지닐 수 있습니다. 클래스 설계상에 초기값을 설정해주지 않으면, 모든 객체가 동일한 데이터를 갖게 될 위험이 있습니다. 따라서 생성 시점부터 원하는 초기값을 객체에 설정할 수 있도록 생성자가 필요합니다.

 

생성자의 사용법

아래의 예제는 Book 클래스에 대한 기본 생성자와 매개변수가 있는 생성자를 정의하고 있습니다.

public class Book{
	private String title;
	private String author;
	private int pages;
    
	//기본 생성자
	public Book(){
		this,title = "Unknown";
		this.author = "Unknown";
		this.pages = 0;
	}
    
	//매개변수가 있는 생성자
	public Book(String title, String author, int pages){
		this.title = title;
		this.author = author;
		this.pages = pages;
	}
}

 

기본 생성자와, 매개변수가 있는 생성자의 호출 방법입니다.

//기본 생성자 호출
Book myBook = new Book():

//매개변수가 있는 생성자 호출
Book myBook = new Book("titleA", "authorB", 12);

 

생성자의 특징

명시 규칙. : 클래스 이름과 동일하게 하며, 리턴 타입이 없습니다. 즉, void를 사용하지 않습니다.

자동 호출 : 객체 생성 시 new 키워드로 생성자를 명시적으로 호출하지 않아도 자동으로 호출됩니다.

기본 생성자 : 사용자가 선언하지 않아도 자동으로 제공되는 생성자로, 특별한 초기화 없이 객체를 생성할 때 사용합니다.

오버로딩 : 매개변수를 다르게 하여 여러 생성자를 제공함으로써, 다양한 방법으로 객체를 초기화할 수 있게 합니다.

 

생성자의 종류

기본 생성자(Default Constructor) : 매배변수가 없으며, 특별한 데이터를 초기화하지 않을 경우 사용합니다.

매개변수가 있는 생성자(Paraneterized Constructor) : 객체를 생성함과 동시에 특정 값으로 초기화하고 싶을 때 사용합니다.

복사 생성자(Copy Constructor) : 다른 객체의 상태를 복사하여 새 객체를 초기화할 때 사용합니다.

 

자바 클래스의 생성자는 객체 지향의 근본적인 개념 중 하나이며, 객체 생성과 초기화의 역할을 담당합니다. 이해하고 올바르게 사용하는 것은 객체 지향 프로그래밍에 있어 매우 중요합니다.

반응형