언어/Java

생성자란?

DH_PARK 2024. 9. 23. 17:45

생성자란?

생성자는 객체가 생성될 때 자동으로 호출되는 특수 목적의 멤버함수로 객체의 초기화를 위해 사용된다.

 

생성자의 특징

  • 생성자의 이름은 클래스 이름과 동일해야 합니다.
  • 생성자는 다른 멤버함수(메소드)와는 다르게 리턴 타입이 없습니다.
  • 생성자는 객체가 생성될때 자동으로 한번 호출됩니다.
  • 생성자는 매개변수 조건에 따라 여러개를 작성할 수 있습니다. (오버로딩)
  • 생성자는 클래스에 최소 1개는 있어야 하며, 생성자 코드가 없을 경우 컴파일러가 기본생성자를 자동으로 생성합니다.
  • (주의할점은, 생성자 코드가 1개라도 작성되어 있다면, 컴파일러는 기본생성자가 없다고 하더라도 기본생성자를 자동으로 생성하지 않습니다.)

생성자의 종류

생성자에는 기본 값을 초기화시켜주는 기본 생성자와 매개변수를 가진 생성자가 있다.

이 때 만드는 객체에 따라 매개변수 값을 정하고 인스턴스를 생성할 수도 있다. 매개변수를 정하지 않고 기본생성자를 호출해서 객체를 만든다면 기본값은 null로 지정된다.


public class Book {
	String title;
	int price;

	public Book() {	}                   // 기본생성자

	public Book(String title, int price) {    // 매개변수를 가진 생성자
		this.title = title;
		this.price = price;
	}

	public void showPrice() {
		System.out.println(title + "의 가격은 " + price + "원 입니다");
	}
}

ex) 기본생성자와 매개변수 생성자


public class HelloWorld {
	public static void main(String[] args) {

		Book b1 = new Book();                 // 객체생성 - 기본생성자 호출됨
		Book b2 = new Book("국어책", 3000);   // 객체생성 - 매개변수를 가진 생성자 호출됨
		
		b1.showPrice();
		b2.showPrice();
	}
} 

매개변수 생성자와 기본 생성자를 사용해서 만든 인스턴스

 

'언어 > Java' 카테고리의 다른 글

업캐스팅 , 다운캐스팅이란?  (0) 2024.09.25
추상클래스와 interface 의 차이?  (0) 2024.09.23
Java 의 기본 . Class  (0) 2024.09.23
getter 와 setter 란?  (0) 2024.09.23
객체 지향프로그래밍이란?  (0) 2024.09.19