생성자 장점

 

1.중복 호출 제거

생성자가 없던 시절에는 생성 직후에 어떤 작업을 수행하기 위해 메서드를 직접 한번 더 호출해야 했다.

생성자 덕분에 객체를 생성하면서 동시에 생성 직후에 필요한 작업을 한번에 처리할 수 있게 되었다.

//생성자 등장 전
MemberInit member = new MemberInit();
member.initMember("user1", 12, 80);

//생성자 등장 후
MemberConstruct member = new MemberConstruct("user1", 12, 70);

 

2.생성자 호출 필수

만약 member.initMember() 호출 하지 않을 경우 따로 오류가 발생하지는 않는다.

그저 member에 빈값이 들어간 채로 존재하게 된다. 결국 유령 회원이 등장하게 된다.

 

만약에 이 값들을 필수로 반드시 입력해야 한다면, 시스템에 큰 문제가 발생할 수 있다.

 

생성자의 진짜 장점은 객체를 생성할 때 직접 정의한 생성자가 있다면 직접 정의한 생성자를 반드시 호출 *해야 한다

참고로 생성자를 메서드 오버로딩 처럼 여러개 정의할 수 있는데, 이 경우에는 하나만 호출하면 된다

 

java 클래스의 경우 다음 생성자를 직접 정의했기 때문에 직접 정의한 생성자를 반드시 호출해야 한다 MemberConstruct(String name, int age, int grade) {...}  이렇게 직접 정의한 생성자를 호출하지 않으면 컴파일 오류가 발생한다.

 

java MemberConstruct member3 = new MemberConstruct(); //컴파일 오류 발생
member3.name = "user1";

//컴파일 오류 메시지
no suitable constructor found for MemberConstruct(no arguments) ```

 

컴파일 오류는 IDE에서 즉시 확인할 수 있는 좋은 오류이다.

이 경우 개발자는 객체를 생성할 때, 직접 정의한 생성자를 필수로 호출해야 한다는 것을 바로 알 수 있어 오류를 빠르게 찾을 수 있다.

 

생성자를 사용하는 경우 필수값 입력을 보장할 수 있으니깐, 아무 정보가 없는 유령 회원이 시스템 내 부에 존재할 수 없게 된다.

 

 

*** 이번 강의에서 좋은 프로그램은 무한한 자유도가 주어지는 프로그램이 아니라 적절한 제약이 있는 프로그램이라는걸 다시 한 번 배웠다.

+ Recent posts