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. 인터페이스  


"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"