본문

[2017.07.24] 04. 왜 생성자를 사용할까?

생성자를 사용하는 다양한 이유가 존재하겠지만 그 중의 하나는

"사용자의 실수를 방지위한 방법 중 하나"이다.

 

예를 들어, 계산기(Calculator) 클래스가 존재하고 다음과 같이 사용한다고 가정하자.

1
2
3
4
Calculator c = new Calculator();
c.setOperand(1020);       // 선행되어야하는 메소드
c.sum();                    // 합을 구하는 메소드
c.avg();                    // 평균값을 구하는 메소드
cs

sum, avg메소드가 사용되기 전에 선행되어야하는 메소드는 setOperand 메소드이다.



But...  사용자가 이렇게 사용한다면 오류가 발생 할 것이다.

1
2
3
4
Calculator c = new Calculator();
//c.setOperand(10, 20);     // 실수로 값을 셋팅하지 않음
c.sum();                    // 합을 구하는 메소드
c.avg();                    // 평균값을 구하는 메소드
cs


 

이러한 실수를 생성자(Constructor)를 설정하므로 방지 할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Calculator {
    private int parm1, parm2;
    
    // 생성자 설정
    public Calculator (int parm1, int parm2) {
        this.parm1 = parm1;
        this.parm2 = parm2;
    }
    
    public void setOperand(int parm1, int parm2) {
        this.parm1 = parm1;
        this.parm2 = parm2;
    }
    
    public void sum() {
        System.out.println(parm1 + parm2);
    }
    
    public void avg() {
        System.out.println(parm1/parm2);
    }
}
 
cs



다음과 같이 생성자를 설정한 후 인자없이 인스턴스를 생성을 시도하면

오류가 발생한다. 

사전에 오류를 발생시키므로 사용자의 실수를 방지 할 수 있다.




# 생성자 #왜 생성자 


공유

댓글