Notice
Recent Posts
Recent Comments
Link
S E P H ' S
생성자(Constructor) 본문
생성자(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 |