Constructor 란?

김지수·2023년 6월 28일

constructor(생성자)의 정의

객체를 인스턴스화(Instance)할 때 호출되는 특별한 메서드이다.

클래스 내부에 constructor(생성자) 정의
→ 객체가 생성될 때 해당 constructor(생성자) 자동으로 호출
→ 객체의 초기화 수행

즉, constructor(생성자)는 객체가 사용될 준비를 하고 초기 상태를 설정하는 역할을 한다.

constructor(생성자)의 특징

1. 이름이 클래스와 동일

생성자의 이름은 해당 클래스의 이름과 동일해야 한다.
이를 통해 자바에서 생성자를 식별하고 호출할 수 있다.

2. 반환 타입이 없음

생성자는 반환 타입을 명시하지 않으며, 실제로 반환되는 값이 없다.
객체 자체를 반환하는 것이 아니라 객체의 초기화를 담당한다.

3. 오버로딩 가능

하나의 클래스에는 여러 개의 생성자를 정의할 수 있다.
매개변수의 종류, 개수, 순서를 다르게하여 다양한 생성자를 오버로딩할 수 있다.

4. 기본(default) 생성자

클래스에 생성자를 명시적으로 정의하지 않으면, 컴파일러는 자동으로 기본 생성자를 생성한다.
기본(default) 생성자는 매개변수가 없고 아무 동작도 수행하지 않는 생성자다.

constructor(생성자)의 주요 목적

1. 객체의 초기화

생성자를 사용하여 객체를 초기화하고, 필요한 초기값을 설정한다.
인스턴스 변수의 값이나 객체의 상태를 초기화하는 데 사용된다.

2. 매개변수 전달

생성자는 인스턴스화할 때 매개변수를 전달할 수 있다.
이를 통해 객체에 필요한 데이터를 제공하고, 다양한 상태로 객체를 생성할 수 있다.

constructor(생성자) 예시 코드

public class MyClass {
    private int value;

    // Parameterized Constructor (매개변수를 가지는 생성자)
    public MyClass(int value) {
        this.value = value;
    }

    // Default Constructor (기본 생성자)
    public MyClass() {
        this.value = 0;
    }

    // 메서드 예시
    public void printValue() {
        System.out.println("Value: " + value);
    }

    public static void main(String[] args) {
        // 객체 생성 및 생성자 호출
        MyClass obj1 = new MyClass(10);
        obj1.printValue(); // 출력: Value: 10

        MyClass obj2 = new MyClass();
        obj2.printValue(); // 출력: Value: 0
    }
}
  • 위의 예시에서 MyClass 클래스는 value라는 인스턴스 변수를 가지고 있다.
  • 첫 번째 생성자는 value를 매개변수로 받아 객체를 초기화하고,
    두 번째 생성자는 기본값인 0으로 객체를 초기화 한다.
  • 이후에는 생성된 객체를 사용하여 다양한 작업을 수행할 수 있다.
    예시에서는 printValue() 메서드를 호출하여 객체의 value 값을 출력하는 예시를 보여주었다.
  • 생성자를 사용하여 객체를 초기화 한 후에는 해당 객체의 메서드를 호출하거나 인스턴스 변수에 접근하여 원하는 작업을 수행할 수 있다. 이를 통해 객체를 조작하고 객체의 동작을 제어할 수 있다.



Parameterized Constructor (매개변수를 가지는 생성자)

  • 하나 이상의 매개변수를 가지고 있는 생성자다.
  • 객체를 생성할 때 매개변수를 전달하여 객체의 초기화를 수행한다.
  • 매개변수를 통해 객체에 필요한 초기값을 제공하고, 객체의 상태를 설정할 수 있다.
public class MyClass {
    private int value;

    // Parameterized Constructor
    public MyClass(int value) {
        this.value = value;
    }
}

매개변수 constructor는 다양한 초기화 상황에 유연성을 제공하며, 객체 생성 시 다양한 매개변수 조합을 사용할 수 있습니다. 이를 통해 객체의 특정 상태로 초기화하거나 다양한 데이터를 객체에 전달할 수 있습니다. 기본 생성자와 매개변수 생성자는 필요에 따라 동시에 정의될 수 있으며, 클래스에는 여러 개의 생성자가 존재할 수 있습니다.

Default Constructor (기본 생성자)

  • 매개변수를 가지지 않는 생성자다.
  • 클래스에 명시적으로 생성자를 정의하지 않을 경우 컴파일러가 자동으로 추가한다.
  • 기본 생성자는 아무런 동작도 하지 않고, 클래스의 인스턴스를 초기화 한다.
  • 주로 객체를 생성할 때 초기값을 설정하지 않고 기본값으로 초기화 할 때 사용된다.
profile
안녕하세요

0개의 댓글