반응형

 

자바 - 생성자의 목적, 특징, 사용법

 

 

 

1. 생성자의 목적

 

생성자(Constructor)는 객체가 생성될때 자동으로 호출되는 특수 목적의 멤버함수(메소드)로 객체의 초기화를 위해 사용됩니다. 

 

 

 

2. 생성자의 특징

 

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

 

 

 

3. 생성자 사용법

 

(예제1) 클래스에 기본생성자와 매개변수를 가진 생성자를 정의했을 경우

 

1) Book 클래스 정의

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 + "원 입니다");
	}
}

 

 

2) Book 객체 생성 및 사용

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

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

 

 

3) 실행결과

 

 

 

 

 

(예제2) 클래스에 기본생성자 없이 매개변수를 가진 생성자만 정의했을 경우

 

1) Book 클래스 정의

 

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

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

 

 

2) Book 객체 생성 및 사용

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

		Book b1 = new Book();                // Error발생 (기본생성자 자동생성 안됨)             
		Book b2 = new Book("국어책", 3000);
		
		b1.showPrice();
		b2.showPrice();
	}
}

 

3) 실행결과

 

 

기본생성자가 없기 때문에 아래와 같이 기본생성자가 호출되는 객체를 생성하려고 하면 에러가 발생합니다.

 

   Book b1 = new Book( );

 

 

 

cf) 생성자 사용시 함께 알아두어야 할 내용입니다. 참고하세요

 

2022.06.27 - [IT 개발/Java] - [Java] 자바 - this와 this( )의 용도 및 사용예제

 

2022.06.27 - [IT 개발/Java] - [Java] 자바 - super 및 super( )의 용도와 사용방법

 

 

반응형

+ Recent posts