본문
[2017.07.24] 04. 왜 생성자를 사용할까?
컴퓨터/질문: 개발 2017. 7. 24. 10:56
생성자를 사용하는 다양한 이유가 존재하겠지만 그 중의 하나는
"사용자의 실수를 방지위한 방법 중 하나"이다.
예를 들어, 계산기(Calculator) 클래스가 존재하고 다음과 같이 사용한다고 가정하자.
1 2 3 4 | Calculator c = new Calculator(); c.setOperand(10, 20); // 선행되어야하는 메소드 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 |
다음과 같이 생성자를 설정한 후 인자없이 인스턴스를 생성을 시도하면
오류가 발생한다.
사전에 오류를 발생시키므로 사용자의 실수를 방지 할 수 있다.
# 생성자 #왜 생성자
'컴퓨터 > 질문: 개발' 카테고리의 다른 글
[2017.08.01] 06. 왜 접근제어자를 사용할까? (0) | 2017.08.01 |
---|---|
[2017.07.30] 05. 왜 패키지를 사용할까? (0) | 2017.07.30 |
[2017.07.20] 03. 왜 클래스를 사용할까? (0) | 2017.07.21 |
[2017.07.15] 02. 왜 메소드를 사용할까? (0) | 2017.07.17 |
[2017.07.13] 01. 왜 배열을 사용할까? (0) | 2017.07.17 |
댓글