어제 오늘 내일

[Java] 생성자(Constructor)란? 본문

IT/Java

[Java] 생성자(Constructor)란?

hi.anna 2025. 12. 16. 00:10

 

Java에서 객체를 만들 때 가장 먼저 실행되는 것이 생성자(Constructor)입니다. 생성자는 객체의 초기 상태를 설정하는 특별한 메서드로, 클래스와 동일한 이름을 가지고 있으며 반환 타입이 없습니다. 이 글에서는 생성자의 기본 개념과 사용법을 간단하게 정리합니다.

 

1. 생성자(Constructor)의 기본 개념

생성자는 객체가 생성될 때 자동으로 호출되는 초기화 메서드입니다.
클래스 이름과 동일한 이름을 사용하며, 반환 타입을 명시하지 않는다는 점이 일반 메서드와의 가장 큰 차이입니다.

예제:

public class Person {
    String name;

    public Person() {
        System.out.println("생성자가 호출되었습니다!");
    }
}

설명

  • Person()이 생성자
  • 객체를 만들 때 자동으로 실행됨

 

2. 기본 생성자(Default Constructor)

클래스 내부에 생성자를 따로 정의하지 않으면, Java는 자동으로 “매개변수가 없는 기본 생성자”를 만들어 줍니다.

public class Car {
    // 생성자를 작성하지 않아도 자동으로 기본 생성자가 제공됨
}

사용 예:

Car car = new Car(); // 기본 생성자 호출

 

3. 매개변수가 있는 생성자(Parameterized Constructor)

객체 생성과 동시에 값을 초기화하고 싶다면 매개변수가 있는 생성자를 정의할 수 있습니다.

public class Person {
    String name;

    public Person(String name) {
        this.name = name;
    }
}

Person p = new Person("Tom");

설명

  • 생성자에 값을 전달하여 객체의 초기 상태를 지정할 수 있음

 

4. 생성자를 여러 개 만들 수 있다 (오버로딩)

같은 이름(클래스 이름)이지만 매개변수가 다른 생성자를 여러 개 정의할 수 있습니다. 이를 생성자 오버로딩이라고 합니다.

public class Person {
    String name;
    int age;

    public Person() {
    }

    public Person(String name) {
        this.name = name;
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

설명

  • 상황에 따라 다양한 형태로 객체를 생성할 수 있음

 

5. 생성자에서 다른 생성자를 호출 (this())

생성자 내부에서 this()를 사용하면 같은 클래스의 다른 생성자를 호출할 수 있습니다.

public class Person {
    String name;
    int age;

    public Person() {
        this("Unknown", 0); // 다른 생성자 호출
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
}

설명

  • 중복 코드를 줄이고 일관된 초기화를 할 수 있음

 

6. 생성자를 사용하는 이유

  • 객체의 초기 상태를 설정할 수 있음
  • 필수 값을 전달하도록 강제할 수 있음
  • 초기화 로직을 명확하게 구성할 수 있음

생성자를 이해하면 객체 지향 프로그래밍에서 클래스를 더욱 정확하고 안정적으로 설계할 수 있습니다.

 

 

반응형
Comments