생성자 장점
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에서 즉시 확인할 수 있는 좋은 오류이다.
이 경우 개발자는 객체를 생성할 때, 직접 정의한 생성자를 필수로 호출해야 한다는 것을 바로 알 수 있어 오류를 빠르게 찾을 수 있다.
생성자를 사용하는 경우 필수값 입력을 보장할 수 있으니깐, 아무 정보가 없는 유령 회원이 시스템 내 부에 존재할 수 없게 된다.
*** 이번 강의에서 좋은 프로그램은 무한한 자유도가 주어지는 프로그램이 아니라 적절한 제약이 있는 프로그램이라는걸 다시 한 번 배웠다.
'JAVA > 공부' 카테고리의 다른 글
| [JavaScript] dacument.value, ineerHTML 차이 (0) | 2025.10.27 |
|---|---|
| JSP에서 ${} 값 변경하기 — DB 반영 없이 화면에서만 수정하기 (0) | 2025.10.19 |
| [CURL] Content-Type 타입별 Body 값 담는 방법 (application/x-www-form-urlencoded,application/json) (0) | 2025.09.22 |
| [JAVA] 예외 처리하지 않았을 경우 500오류 발생 원인 및 해결 방안 (0) | 2025.05.08 |
| content-Type : application/x-www-form-urlencoded (1) | 2025.02.03 |