본문 바로가기
프로그래밍언어/Java

[Java] : 파라미터가 있는 생성자 활용하기

by 오주현 2022. 1. 15.
반응형

파라미터가 있는 생성자를 활용하기

생성자도 다른 메소드와 같이 파라미터를 사용할 수 있다.

파라미터가 있는 생성자를 활용해서 인스턴스 생성시 초기 값을 파라미터로 넘겨 설정하는 코딩을 한다.

NoteSetting myNote1 = new NoteSetting();
        myNote1.color = "Blue";
        myNote1.page = 0;

기존에는 이렇게 인스턴스 생성을 하고 값을 따로 추가로 담아줬다.

이렇게 하면 만약 인스턴스를 여러개를 생성해 줘야 하는 상황이 오면 일일이 지정을 해서 값을 담아줘야 하기 때문에 코드가 길어질 수 있다.

이것을 파라미터가 있는 생성자를 통해 보완해서 사용할 수 있는데 아래 코드를 확인해 보자.

class PenSetting {
    // 필드
    private String color;
    private int number;

    PenSetting(String color, int number) {
        this.color = color;
        this.number = number;
    }

    public String getColor() {
        return color;
    }

    public int getNumber() {
        return number;
    }
}

PenSetting클래스에 있는 필드에 private를 통해 color과 number을 선언했다.

그리고 파라미터가 있는 생성자를 만들어 주고 this.을 통해 필드의 color값과 파라미터로 받아오는 color값을 구분해줬다. number도 마찬가지다.

Getter를 설정해 주고 이제 사용해 주면 된다.

public class Pen {
    public static void main(String[] args) {
        PenSetting myPen1 = new PenSetting("Red", 1);
        PenSetting myPen2 = new PenSetting("Black", 2);

        System.out.println("연필1의 색상은 " + myPen1.getColor() + "입니다.");
        System.out.println("연필1은 " + myPen1.getNumber() + "개 입니다.");
        System.out.println("#############################################");
        System.out.println("연필2의 색상은 " + myPen2.getColor() + "입니다.");
        System.out.println("연필2는 " + myPen2.getNumber()  + "개 입니다.");
    }
}

myPen1과 myPen2라는 인스턴스를 생성자를 통해 생성했다.

아까와 다르게 초기 값을 메소드에 담아 넘겨주면 자동으로 셋팅이 된다.

출력을 통해 확인해 보면 생성자를 통해 인스턴스를 생성할 때 넘겨줬던 파라미터값을 그대로 가지고 있는 것을 확인할 수 있다.

반응형

댓글