본문 바로가기
JAVA

12. 생성자, 기본 생성자

by seongju.lee 2022. 9. 24.

 

생성자

  • 인스턴스가 생성될 때마다 호출되는 인스턴스 초기화 메서드 이다.
  • 즉, 인스턴스 생성시 인스턴스 변수들을 초기화 해주는 것이다.

 

생성자의 규칙

  • 이름이 클래스 이름과 동일해야 한다.
  • 리턴 값이 없다. (void를 붙이지 않음.)
  • 모든 클래스는 반드시 한 개이상의 생성자를 가져야 한다.
    • 생성자를 명시하지 않은 메서드의 경우 기본 생성자를 가진다.

 

기본 생성자

  • 매개변수가 없는 생성자
  • 생성자가 하나도 없을 때만, 컴파일러가 자동으로 추가한다.
  • 컴파일러가 자동으로 추가하지만, 기본 생성자를 직접 작성 해주는 것이 좋다.
    • 생성자 오버로딩을 통해, 다양한 생성자를 선언한 경우에는 기본 생성자를 명시하지 않으면 에러가 발생한다.

 

public class ConstrutorEx {

	public static void main(String[] args) {
		

		/*
		 * 1.참조변수 만들어짐. 
		 * 2.new연산자가 객체를 생성 함. 
		 * 3.Car()를 통해 생성자를 호출하면서 객체를 초기화 함. (객체 초기화 == 생성자 호출) 
		 * 
		 * */
		Car c1 = new Car(); // 기본 생성자 --> Car() 이 부분이 생성자를 호출하는 것.
		Car c2 = new Car("white", "auto", 4); // 매개변수가 있는 생성자 --> Car(String, String, int) 생성자 호출 
		
		
		
		System.out.println(c1.color + " " + c1.gearType +" "+ c1.door);
		System.out.println(c2.color + "  " + c2.gearType + " " + c2.door);
	}

}

class Car {
	
	String color;
	String gearType;
	int door;
	
	
	Car() {}; // 기본 생성자 명시  
	
	Car(String c, String g, int d){
		
		this.color = c;
		this.gearType = g;
		this.door = d;
				
	}
	
}

 

  • 위 코드를 통해서 생성자 오버로딩을 알 수 있음.
  • 기본 생성자는 명시해주는 것이 좋음.
  • 객체를 생성하는 과정은 아래와 같다.
    • 참조변수를 먼저 생성한다.
    • new 연산자를 통해서 객체를 생성.
    • 우측에 클래스 이름과 같은 생성자를 호출하여 객체를 초기화 해주는 것.

'JAVA' 카테고리의 다른 글

13. 멤버변수의 초기화  (0) 2022.09.25
12. this()와 this  (0) 2022.09.24
11. static 메서드와 instance 메서드  (0) 2022.09.20
10. 참조형 반환타입  (0) 2022.09.20
9. 기본형&참조형 매개변수  (0) 2022.09.20