⛏ 생성자
생성자는 객체 생성 직후 객체에 초기값을 할당하는 메소드이다.
특징
1. 생성자 이름은 클래스 이름과 동일해야 한다.
2. 생성자는 반환 타입을 가지지 않는다.
class Member {
String name;
int age;
// 생성자(constructor)
Member(String name, int age) {
this.name = name;
this.age = age;
}
}
생성자는 인스턴스를 생성한 후 즉시 호출된다.
즉, new 키워드를 통해 인스턴스를 생성한 후 즉시 생성자가 호출되어 객체에 초기값을 할당한다.
Member member = new Member("dragon", 20);
왜 쓰나?
객체에 값을 넣어주는 메소드를 만드는 대신 생성자를 사용하는 이유가 무엇일까?
1. 메소드 호출을 줄인다.
만약 createMember()라는 메소드가 있다고 하자. 그럼 우리는 Member 인스턴스를 만들고 → 그 이후에 member.createMember(인자..)를 통해 메소드를 호출해서 값을 넣어주어야 한다.
하지만 Member()라는 생성자를 사용하면 객체 생성과 거의 동시에 객체에 값을 넣어줄 수 있다.
2. 생성자 호출이 강제된다.
createMember()라는 메소드를 사용하지 않으면 어떻게 될까? 프로그램은 문제없이 돌아간다.
하지만 데이터 값이 없는 객체가 디비에 저장되어 문제를 일으킬 수 있다.
생성자를 사용하면 이런 문제를 막을 수 있다.
Member member = new Member();
위의 코드는 컴파일 오류가 발생한다
. 컴파일 오류는 우리가 쉽게 확인할 수 있다.
즉, 데이터 값이 없는 객체가 디비에 저장되는 것을 개발 시점에서 막을 수 있는 아주 큰 장점이 있다!
본 게시물은 인프런 김영한님의 김영한의 실전 자바 - 기본편을 듣고 작성된 게시물입니다.
'java' 카테고리의 다른 글
자바 메모리 구조 (0) | 2023.12.16 |
---|---|
final 키워드(변수, 상수) (0) | 2023.12.14 |
error-Your build is currently configured to use Java 17.0.7 and Gradle 6.8. (1) | 2023.12.05 |
해시(Hash) (0) | 2023.11.26 |
동일성 vs 동등성 (0) | 2023.08.17 |