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

[Java] Setter vs 생성자

by 까망 하르방 2021. 3. 4.
반응형

Setter vs 생성자

개발자마다 선호하는 것이 다르며, 두 가지 모두 활용하기도 합니다.

예를 들면, 생성할 때 인스턴스 변수를 초기화하고, 그 후에 추가 설정이 필요 없으면 생성자로도 충분하겠지만,

객체 생성 이후 자유롭게 데이터를 추가 및 변경하고 싶은 경우에는 setter 메소드가 선호됩니다.

 

계산기 예제

class Calculator {
    int left, right;

    public void setOprands(int left, int right) {
        this.left = left;
        this.right = right;
    }

    public void sum() {
        System.out.println(this.left + this.right);
    }
}

public class Main {
    public static void main(String[] args) {

        Calculator calc = new Calculator();
        calc.setOprands(10, 20);
        calc.sum();

    }
}

setOprands 메소드로 calc 객체가 지닐 수 있는 값으로 10과 20을 지정합니다.

이 값들은 객체 내부에서 인스턴스 변수 left와 right의 값으로 설정되어서 유지됩니다.

그런데 이 객체(calc)를 이용하기 위해서는 관련 메소드의 호출 순서를 기억해야만 합니다.

왜냐하면 setOprands()를 호출하기 전에 sum()과 avg()를 호출해봤자 원하는 결과를 얻을 수 없기 때문입니다.

 

이러한 절차를 기억해야 한다는 것은 사용자 입장에서는 불편할 뿐 아니라 

잘못된 사용으로 오류가 발생할 확률을 높이는 결과를 초래 할 수 있습니다.

그렇기에 애초에 객체를 생성할 때 데이터를 지정할 수 있는 생성자를 사용하기도 합니다.

 

 

 

반응형

댓글