Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java 생성자의 종류 – 매개변수 생성자와 인자 없는 생성자 완벽 정리

생성자(Constructor)는 메서드와 형태가 비슷하지만, 클래스의 객체가 생성되는 시점에 자동으로 호출된다는 점에서 차이가 있습니다. 생성자는 일반적으로 클래스의 인스턴스 변수를 초기화하는 데 사용됩니다. 또한 생성자는 반드시 클래스와 같은 이름을 가져야 하며, 반환 타입을 가지지 않습니다.

Java의 생성자는 크게 두 가지 유형으로 나뉩니다. 바로 매개변수 생성자(Parameterized Constructor)인자 없는 생성자(No-arg Constructor)입니다.

1. 매개변수 생성자(Parameterized Constructor)

매개변수 생성자는 이름 그대로 매개변수를 받아들이는 생성자입니다. 이 매개변수를 활용해 인스턴스 변수를 원하는 값으로 초기화할 수 있으며, 객체를 생성하는 시점에 서로 다른 값들을 전달함으로써 클래스 변수를 동적으로 초기화할 수 있다는 장점이 있습니다.

예제

import java.util.Scanner;
public class Test {
    int num;
    String data;
    float flt;
    Test(int num, String data, float flt){
        this.num = num;
        this.data = data;
        this.flt = flt;
    }
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        System.out.println("정수 값을 입력하세요: ");
        int num = sc.nextInt();
        System.out.println("문자열 값을 입력하세요: ");
        String data = sc.next();
        System.out.println("실수 값을 입력하세요: ");
        float flt = sc.nextFloat();
        Test obj = new Test(num, data, flt);
        System.out.println(obj.num);
        System.out.println(obj.data);
        System.out.println(obj.flt);
    }
}

실행 결과

정수 값을 입력하세요:
1024
문자열 값을 입력하세요:
test
실수 값을 입력하세요:
11.2
1024
test
11.2

위 예제에서 볼 수 있듯이, 사용자가 입력한 값이 매개변수를 통해 생성자로 전달되고, 이를 기반으로 객체의 인스턴스 변수들이 초기화되는 것을 확인할 수 있습니다.

2. 인자 없는 생성자(No-arg Constructor)

인자 없는 생성자는 어떠한 매개변수도 받지 않는 생성자입니다. 이 생성자는 클래스 변수들을 각 데이터 타입의 기본값으로 초기화합니다. 참고로 Java의 기본값은 객체 타입은 null, floatdouble0.0, booleanfalse, byte, short, int, long0입니다. 물론 아래 예제처럼 생성자 내부에서 직접 특정 값으로 초기화할 수도 있습니다.

예제

public class Test {
    int num;
    String data;
    float flt;
    Test(){
        this.num = 100;
        this.data = "test";
        this.flt = 125.33f;
    }
    public static void main(String args[]){
        Test obj = new Test();
        System.out.println(obj.num);
        System.out.println(obj.data);
        System.out.println(obj.flt);
    }
}

실행 결과

100
test
125.33

마무리

생성자는 객체 지향 프로그래밍에서 객체의 상태를 올바르게 설정하는 핵심 요소입니다. 매개변수 생성자를 사용하면 객체마다 다른 값으로 유연하게 초기화할 수 있고, 인자 없는 생성자는 고정된 값이나 기본값으로 초기화할 때 유용합니다. 상황에 맞게 두 생성자를 적절히 활용하면 더욱 안전하고 가독성 높은 코드를 작성할 수 있습니다.