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(); 메인 객체 생성 시 인수 값을 필수로 넣으라는 경고를 확인할 수 있다.