Day 12: Java에서 생성자 이해하기

발행: (2026년 1월 9일 오전 12:35 GMT+9)
4 min read
원문: Dev.to

Source: Dev.to

생성자란?

생성자는 객체가 생성될 때 자동으로 호출되는 Java의 특수한 메서드입니다.

  • 생성자 이름은 클래스 이름과 동일해야 합니다.
  • 반환 타입이 없습니다.
  • 객체가 생성될 때 자동으로 호출됩니다.
  • 인스턴스 변수를 초기화하는 데 사용됩니다.

왜 생성자가 필요할까요?

생성자는 다음을 도와줍니다:

  • 객체의 값을 초기화합니다.
  • 별도의 setter 메서드를 줄여줍니다.
  • 객체가 유효한 상태에서 생성되도록 보장합니다.
  • 코드 가독성과 구조를 향상시킵니다.
class Student {
    Student() {
        System.out.println("Constructor called");
    }
}

Student 객체가 생성될 때, 생성자가 자동으로 실행됩니다.

생성자의 종류

Java에는 주로 두 가지 종류의 생성자가 있습니다:

기본 생성자

기본 생성자는 매개변수가 없는 생성자입니다.

class Employee {
    Employee() {
        System.out.println("Hi");
    }

    public static void main(String[] args) {
        Employee emp = new Employee();
    }
}

emp 객체가 생성될 때 기본 생성자가 호출되어 Hi를 출력합니다.

매개변수화된 생성자

매개변수화된 생성자는 객체 변수를 초기화하기 위해 매개변수를 받습니다.

class Employee {
    int empId;
    String empName;
    int empAge;

    Employee(int empId, int empAge, String empName) {
        this.empId = empId;
        this.empAge = empAge;
        this.empName = empName;
    }

    public static void main(String[] args) {
        Employee kumar = new Employee(101, 20, "Kumar");
        System.out.println(kumar.empId);
    }
}

이 예제에서:

  • Employee 클래스는 세 개의 인스턴스 변수 empId, empName, empAge를 선언합니다.
  • 매개변수화된 생성자 Employee는 세 개의 인자를 받아 this 키워드를 사용해 인스턴스 변수에 할당합니다.
  • main 메서드에서 지정된 값으로 kumar 객체를 생성합니다. System.out.println(kumar.empId);101을 출력합니다.

매개변수화된 생성자를 사용하면 객체 생성 시 인자를 통해 값을 초기화할 수 있습니다.

생성자에서의 this 키워드

this란?

this는 현재 객체를 가리키는 참조 변수입니다.

생성자에서 this 사용하기

생성자 매개변수와 인스턴스 변수가 같은 이름을 가질 때, Java는 매개변수에 우선순위를 둡니다. 이때 this 키워드를 사용해 인스턴스 변수와 매개변수를 구분합니다:

this.empId = empId;
  • this.empId → 현재 객체의 인스턴스 변수
  • empId → 생성자 매개변수

이를 통해 전달된 값이 객체에 올바르게 저장됩니다.

Back to Blog

관련 글

더 보기 »

인터페이스 vs 추상 클래스

인터페이스 또는 추상 클래스? 이들은 매우 유사하기 때문에 언제 각각을 사용해야 하는지 혼란스러울 수 있습니다. 저는 이 질문에 답하려고 합니다...

Java의 정적 변수와 비정적 변수

비정적 인스턴스 변수 Java에서 비정적 변수는 static 키워드를 사용하지 않고 클래스 내부에 선언되지만 메서드 바깥에 위치합니다. 각 객체 o...