Java

[ java ] 생성자(constructor)

JooKit 주킷 2020. 12. 14. 23:20
목차 접기
728x90
반응형

생성자가 하는 일

  • 클래스를 처음 만들 때(클래스를 생성할 때) 멤버 변수나 상수를 초기화하는 것
  • 생성자는 클래스를 생성할 때만 호출한다.
  • 생성자 이름은 클래스 이름과 같고 반환값이 없다.

디폴트 생성자(default constructor)

  • 생성자가 없는 클래스는 클래스 파일을 컴파일할 때 자바 컴파일러가 자동으로 생성자를 만들어준다.
  • 그러나 매개변수를 받는 생성자를 직접 구현한다면 자바 컴파일러는 디폴트 생성자를 자동으로 생성해주지
    않는다.

직접 매개변수를 받는 생성자를 구현했다면, 필히 디폴트 생성자를 사용하기 위해서는 직접 default constructor를 구현해주어야 오류없이 사용할 수 있다.

어떤 경우에 생성자를 직접 구현할까?

  • 생성자는 주로 멤버 변수에 대한 값들을 매개변수로 받아서 인스턴스가 새로 생성될 때
    멤버 변수 값들을 초기화하는 역할을 한다.

생성자 오버로드(constructor overload)

  • 클래스에 생성자가 두 개 이상 제공되는 경우를 일컫는다.
  • 필요에 따라 매개변수가 다른 생성자를 여러 개 만들 수 있다.
  • 매개변수가 있는 생성자를 추가한다고 해서 필요없는 디폴트 생성자를 추가해줄 필요는 없다.

오버로드

  • 객체 지향 프로그램에서 메서드 이름이 같고 매개변수만 다른 경우를 오버로드라고 한다.

어떤 멤버 변수들은 외부 클래스에서 값을 지정하지 못하는 경우도 있다. 따라서 매개변수가 있는 생성자를 구현하고 이를 사용하는 것이 편리한 경우가 많다.

728x90
반응형
LIST