생성자를 쓰는 이유. 생성자의 필요성 (Why use constructors)
뿌리튼튼 CS/Java2016. 8. 2. 22:19
이유1: 객체 생성시 초기화 작업
일반 변수들의 경우, 생성자 없이 전역에서 바로 초기화를 해줘도 됩니다.
하지만 불가능해서 꼭 생성자에서 초기화를 해줘야하는 경우도 있습니다.
1 2 3 4 5 | import java.io.FileInputStream; public class FileHandler { private FileInputStream fis = new FileInputStream("\tmpFile"); } | cs |
위 코드는 컴파일에러가 발생하며, 아래와 같이 수정해야 합니다.
1 2 3 4 5 6 7 8 9 10 | import java.io.FileInputStream; import java.io.FileNotFoundException; public class FileHandler { private FileInputStream fis; public FileHandler() throws FileNotFoundException { fis = new FileInputStream("\tmpFile"); } } | cs |
new FileInputStream() 에서 FileNotFoundException 을 throw 하므로 받아줘야 하기 때문입니다.
이유2: 객체 생성시 필수입력값을 강제하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public class Human { private String name; private String nickName; private int age; public Human(String name) { this.name = name; } public void setNickName(String nickName) { this.nickName = nickName; } public void setAge(int age) { this.age = age; } } | cs |
사람 객체를 생성시 name 을 필수입력 항목으로 강제하는 코드입니다.
그외 nickName 과 age 는 원하는 경우에 한해 set 함수로 입력할 수 있습니다.
'뿌리튼튼 CS > Java' 카테고리의 다른 글
심심풀이 문제3 - Call by Value vs Call by Reference (0) | 2016.10.04 |
---|---|
심심풀이 문제2 - String (0) | 2016.08.02 |
심심풀이 문제1 - Object.equals() (0) | 2016.07.16 |
[Collection] ArrayList vs Vector (0) | 2016.02.01 |
String vs StringBuilder vs StringBuffer (2) | 2016.01.28 |