[JAVA]객체지향 기초 - 생성자

Date:     Updated:

카테고리:

태그:

[13] 객체지향 기초 - 생성자

13.1. 생성자 (Constructor)

  • 객체를 생성할 때만 호출하는 특수한 메서드
    • new 연산자를 통해 객체의 생성자를 이용한 객체 생성
    • 생성자명은 클래스명과 같다
    • 반환형이 없는 메서드의 형태를 가진다
  • 생성자 없이 클래스를 정의할 경우 매개변수가 없는 ‘디폴트’ 생성자가 자동으로 생성된다

  • 객체 생성 시 변수 및 상수 초기화 또는 다른 초기화 기능을 수행하는 메서드 호출
  • 대부분의 생성자는 외부에서 접근 가능하지만, 필요에 따라 Private으로 선언하기도 한다

13.2. 기본 생성자 (Default Constructor)

  • 생성자명은 클래스명과 같다
  • 반환형과 매개변수가 없는 메서드
  • 실질적 기능은 없다(구현부 없음)
  • 컴파일러를 이용해 자동 생성 가능(클래스명 참조)
  • 클래스에는 최소 하나 이상의 생성자가 존재
  • 생성자를 구현하지 않았더라도 new 키워드를 이용해 호출할 수 있다

13.3. 생성자 만들기

  • 필요에 따라 생성자를 직접 구현하기도 한다.

13.4. 여러가지 생성자 정의 : 오버로드(Overload)

  • 하나의 클래스 안에서 동일한 이름을 가진 메서드를 여러 개 정의하는 것
    • 필요에 따라 미리 정의된 생성자를 호출하여 사용
  • 특징
    • 동일한 메서드명을 가진다
    • 매개변수의 개수 및 자료형이 다르다
    • 반환형과 변수명은 무관하다
  • 유사한 작업이지만 전달받는 매개변수에 따라 다른 연산이 필요할 경우 유용하다
  • cf) 오버라이딩(Override) : change, modify

13.5. this()

  • 생성자 내부에서만 사용할 수 있는 생성자
  • 같은 클래스 내에서 다른 생성자를 호출할 때 사용
  • 생성자의 첫 문장에서 호출해야 한다(다른 코드들 보다 상위에 위치해야 한다)

  • this와의 차이
    • 인스턴스 자신을 가리키는 참조변수
    • 인스턴스 주소가 저장되어 있다
    • 모든 클래스에서 지역변수로 숨겨진 채 존재
    • new 연산자를 사용해 인스턴스를 생성할 때 비로소 heap 영역에 할당되며 활성화된다

JAVA 카테고리 내 다른 글 보러가기

댓글 남기기