Constructor   생성자

(2023-07-23)

Destructor, 소멸자


1. [객체지향 프로그래밍]  생성자

  ㅇ 생성자 
     - 어떤 클래스객체를 생성할 때, 자동으로 호출되는 특별한 메소드
        . 즉, 객체를 생성할 때, 자동으로 호출될 목적으로, 미리 만들어지어 정의되는 연산
     - 통상, new 연산자에 의해 호출되며, 객체 인스턴스를 생성함

  ㅇ 생성자의 역할은, 
     - 객체의 `생성` 외에도,
     - 생성되는 객체에 `초기값 부여`, 기타 `옵션 조정` 등이 가능함

  ㅇ 생성자 및 소멸자의 호출
     - 객체가 생성,소멸 시에, 자동으로 호출됨


2. [객체지향 프로그래밍]  생성자의 특징

  ㅇ 생성자 규칙
     - (생성자 명칭)
        . 통상, `생성자 이름`은 `클래스 이름`과 같음
        . 또한, 대문자로 시작하여, 소문자로 시작하는 변수명,함수명 등과는 구별시킴
     - (생성자 타입)
        . 객체를 생성하는 함수 처럼 행동하나, 함수 처럼 반환값이 필요없음
        . 생성자는, 통상의 메소드가 아니므로, 
           .. 리턴 타입이나 void형 타입으로, 타입 선언될 수 없음
     - (생성자 내 this 키워드)
        . 생성자 내 클래스 자신을 나타낼 때 this 키워드를 사용하며,
        . 생성자에 의해 생성된 객체이면, 이때 this는 생성된 객체를 가리킴
     - (생성자는 return 문 없음)
        . 생성자 역할은 객체 생성 및 초기화이므로, 굳이 반환값이 필요 없음
     - (생성자 사용)
        . 통상, 'type varObject = new 생성자()' 형식으로, 객체 인스턴스를 만듬
     - (생성자 호출 시기)
        . new 연산자에 의해, 객체 인스턴스가 만들어질 때, 호출됨

  ㅇ 생성자의 반대 : 소멸자(Destructor)


3. [객체지향 프로그래밍]   디폴트 생성자 (default constructor)

  ㅇ 아무 인자도 없는 생성자를 말함
     - 이는 따로 정의하지 않아도 시스템컴파일시 기본으로 제공하여주며,
     - 사실 아무 일도 하지 않음

  ㅇ 따라서, 생성자를 일부러 정의하게되면,
     - 별도로 디폴트 생성자는 만들어지지 않음


4. [객체지향 프로그래밍]   생성자 호출 및 객체 생성 과정 (자바스크립트 例)

  ㅇ ① new 연산자로 생성자 함수를 호출
  ㅇ ② 빈 객체를 만듬
  ㅇ ③ 만든 빈 객체를 this에 할당
  ㅇ ④ 생성자 함수 본체의 코드를 실행 (this에 속성메소드 추가)
  ㅇ ⑤ 만들어진 빈 객체의 __proto__에 생성자 함수의 prototype 속성을 대입
  ㅇ ⑥ this를 생성자의 반환값(객체)으로 변환시킴

객체지향 프로그래밍
   1. 객체지향   2. 객체지향 프로그래밍   3. 메세지   4. 생성자   5. 접근 제한 수식자   6. 추상 클래스   7. 인터페이스  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"