S E P H ' S

생성자(Constructor) 본문

Programing & Coding/JAVA

생성자(Constructor)

yoseph0310 2021. 2. 21. 13:51

생성자(Constructor)

생성자는 new 연산자를 통해 인스턴스를 생성할 때 반드시 호출이 되고 제일 먼저 실행되는 일종의 메소드이다. 생성자는 인스턴스 변수(필드 값 등)를 초기화 시키는 역할을 한다.

 

생성자 종류 및 사용

클래스를 정의할 때 생성자를 생략하면 컴파일러가 자동적으로 기본 생성자 (Default Constructor)를 생성하여 준다.

 

public class ConstructorEx01 {
//	public ConstructorEx01(){ } // Default Constructor 자동 생성
	
	public static void main(String[] args) {
		ConstructorEx01 ce = new ConstructorEx01(); // 인스턴스 생성 및 생성자 호출
	}
}

때문에 다음과 같이 사용이 가능하다.

public class ConstructorEx01 {
	public ConstructorEx01(){ 
		System.out.println("생성자 호출 성공");
	}
	
	public static void main(String[] args) {
		ConstructorEx01 ce = new ConstructorEx01(); // 인스턴스 생성 및 생성자 호출
	}
}

기본 생성자를 직접 생성했고, 실행하면 "생성자 호출 성공"이 출력된다.

하지만 생성자를 직접 생성할 때, 주의할 점이 있다.

 

public class ConstructorEx02 {
	public ConstructorEx02(String a){ // a = 사용자 정의
		System.out.println(a + " 생성자 호출 성공");
	}
	
	public static void main(String[] args) {
		ConstructorEx02 ce = new ConstructorEx02("사용자 정의"); // 매개변수를 갖는 생성자 호출
//		ConstructorEx02 ce2 = new ConstructorEx02(); // 컴파일 에러
	}
}

매개변수를 갖는 생성자를 정의하여 생성하였고 main 메소드에서 ce, ce2를 만들었다. ce는 성공적으로 "사용자 정의 생성자 호출 성공"을 출력한다. 하지만 그 다음 줄의 코드는 컴파일 에러를 발생 시킬것이다. 그것은 사용자가 정의한 생성자가 있기 때문에 컴파일러가 자동적으로 기본생성자를 생성하지 않기 때문이다.그러므로 생성자를 직접 정의할 때는 기본 생성자도 함께 정의해주는 것이 좋다.

 

 

'Programing & Coding > JAVA' 카테고리의 다른 글

Comparable, Comparator  (0) 2021.02.21
JAVA Exception 처리 방식  (0) 2021.02.21
JAVA Exception  (0) 2021.02.21
변수의 초기 값(Default Values)  (0) 2021.02.21
추상클래스와 인터페이스의 차이  (0) 2021.01.27