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

Java 매개변수화 생성자(Parameterized Constructor)란? 개념과 예제 완벽 정리

생성자(Constructor)는 메서드와 유사한 특수한 멤버로, 클래스의 객체가 생성되는 시점에 자동으로 호출됩니다. 주로 클래스의 인스턴스 변수를 초기화하는 데 사용되며, 생성자의 이름은 반드시 클래스 이름과 같아야 하고 반환 타입을 가지지 않습니다.

매개변수화 생성자란?

매개변수화 생성자(Parameterized Constructor)는 하나 이상의 매개변수를 받아들이는 생성자로, 전달받은 값을 사용해 인스턴스 변수를 초기화합니다. 매개변수화 생성자를 활용하면 객체를 인스턴스화하는 시점에 서로 다른 값을 전달하여 클래스 변수를 동적으로 초기화할 수 있다는 장점이 있습니다.

문법

public class Sample {
    int i;
    public Sample(int i){
        this.i = i;
    }
}

생성자 내부에서 this 키워드를 사용하면 매개변수로 전달된 값과 이름이 같은 인스턴스 변수를 구분하여 명확하게 초기화할 수 있습니다.

예제 1: 기본적인 매개변수화 생성자

public class Test {
    String val;
    Test(String val){
        this.val = val;
    }
    public static void main(String args[]){
        Test obj = new Test("test");
        System.out.println(obj.val);
    }
}

출력 결과

test

위 예제에서는 객체를 생성할 때 문자열 "test"를 생성자에 전달하고, 이 값이 인스턴스 변수 val에 저장된 후 출력됩니다.

예제 2: 여러 매개변수를 사용하는 경우

다음 예제는 Scanner를 사용해 사용자로부터 정수, 문자열, 실수 값을 입력받고, 이를 매개변수화 생성자에 전달하여 객체를 초기화하는 방법을 보여줍니다.

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("Enter an integer value: ");
        int num = sc.nextInt();
        System.out.println("Enter a string value: ");
        String data = sc.next();
        System.out.println("Enter a floating point value: ");
        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);
    }
}

출력 결과

Enter an integer value:
1024
Enter a string value:
test
Enter a floating point value:
11.2
1024
test
11.2

이처럼 매개변수화 생성자를 사용하면 객체마다 서로 다른 값으로 인스턴스 변수를 유연하게 초기화할 수 있어, 재사용성과 코드 가독성이 크게 향상됩니다.