Java 기본 생성자
Member 클래스 코드부터 살펴보도록 한다.
Member.java
public class Member {
String name;
int age;
int grade;
Member() { // 기본 생성자
}
}
Main.java
public class Main {
public static void main(String[] args) {
Member member1 = new Member();
}
}
메인함수에서 Member member1 = new Member();
Member 클래스를 호출해도 기본 생성자 Member() {}
정상적으로 생성된 것을 확인할 수 있다.
만약 기본 생성자가 제거하더라도 코드는 정상적으로 동작한다.
컴파일러는 기본 생성자(예: Member() {}
) 가 없는 경우 자동으로 생성한다.
기본 생성자
- 매개 변수 없는 생성자가 기본생성자이다.
- 클래스에 기본 생성자가 없다면 컴파일러가 매개변수와 코드가 없는 기본 생성자를 자동 생성한다.
- 생성자가 있는 경우 자바는 기본 생성자를 만들지 않는다.
기본 생성자를 자동으로 생성하는 이유는 기본 생성자가 필수로 입력해주게 되면 불편하니 편의상 자동으로 생성하는 것으로 보인다.
클래스에 기본 생성자 확인하기
- 기본 생성자를 클래스에 포함한 경우
- 기본 생성자를 클래스에 없는 경우
- 기본 생성자를 파라미터를 추가한 경우
Main 함수는 모두 동일하게 Member member1 = new Member();
인수 없이 호출하는 것으로 간주한다.
기본 생성자 - 생성자 포함
public class Member {
String name;
int age;
int grade;
Member() { // 기본 생성자
}
}
Main 에서 호출 시 동작한다.
기본 생성자 - 생성자 미포함
public class Member {
String name;
int age;
int grade;
}
Main 에서 호출 시 동작한다.
기본 생성자 - 생성자에 파라미터를 포함한 경우
public class Member {
String name;
int age;
int grade;
Member(String name) { // 기본 생성자
}
}
Main 에서 호출 시 Constructor 오류가 발생한다. Member member1 = new Member();
메인 객체 생성 시 인수 값을 필수로 넣으라는 경고를 확인할 수 있다.