java

생성자

주다애 2023. 12. 12. 18:31

⛏ 생성자

생성자는 객체 생성 직후 객체에 초기값을 할당하는 메소드이다.

 

특징

 

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