본문 바로가기
  • 시 쓰는 개발자
왜 Why ?

생성자 왜 쓸까?

by poetDeveloper 2024. 3. 11.

생성자 왜 쓸까?

생성자를 왜 쓸까? 생성자를 명시해주지 않아도 컴파일러가 기본 생성자를 자동으로 만들어주고, 값을 초기화할 때도 setter를 쓸 수 있는데 왜 쓸까?? 이런 궁금증이 문득 들어서 정리해본다.

1. 쉬운 초기화

setter로도 당연히 할 수는 있다. 근데 코드만 보더라도 필드값 3개를 초기화해야한다면 생성자는 객체를 만들 때 같이 하고, setter는 3줄이 더 추가되니 생성자를 사용하는 것이 코드도 짧아지고 쉽게 초기화할 수 있다.

2. 직관성

위에서처럼 setter를 써서 3줄로 초기화하기보다, 객체를 만들 때 바로 초기화한다면 직관적이고 보기 편할 것이다.

3. 객체의 유효성 보장

그냥 있어보이게 지은 말인데, 실제 있는 말인지는 모르겠다. 단순히 Person p = new Person(); 라고 쓰는 것과, Person kim = new Person("kim", 22, 175); 을 보면 후자는 이름, 나이, 키를 명시해주어 더 구체적인 객체가 된다. 하지만 전자처럼 쓰면 이름도 나이도 키도 없는 사람이므로 이것이 사용될 객체인지 어떤 용도인지 바로 판단할 수 없다는 것이다.

4. 에러 방지

객체를 만들 때 필요한 값을 반드시 넣고 객체를 생성할 수 있게 유도할 수 있다. 사람 객체를 만들 때 나이 이름 성별 등이 반드시 필요하다면 생성자를 통해 객체를 만들 때 바로 이를 받아오도록 강제할 수 있다. 이렇게 만들면 빠지는 내용을 방지할 수 있을 것이다.