반응형
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()를 호출해봤자 원하는 결과를 얻을 수 없기 때문입니다.
이러한 절차를 기억해야 한다는 것은 사용자 입장에서는 불편할 뿐 아니라
잘못된 사용으로 오류가 발생할 확률을 높이는 결과를 초래 할 수 있습니다.
그렇기에 애초에 객체를 생성할 때 데이터를 지정할 수 있는 생성자를 사용하기도 합니다.

반응형
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] this & this() (0) | 2021.03.06 |
---|---|
[Java] Java 언어 특징 및 실행과정 (0) | 2021.03.04 |
[Java] 유효범위 (0) | 2021.03.04 |
[Java] 배열 관련 함수 arraycopy() 분석 (0) | 2021.03.04 |
[Java] 배열 개념 (선언 및 초기화) (0) | 2021.03.04 |
댓글