클래스와 인스턴스

YEN J·2022년 9월 21일
0

code states

목록 보기
14/43

객체 지향 프로그래밍이란?
하나의 모델이 되는 청사진(설계도)을 만들고(class), 이를 바탕으로 한 객체(object)를 만드는(instance) 프로그래밍 패턴

  • 클래스를 만드는 방법
    • class의 경우 일반적인 함수 정의하는 것과 비슷하게 만듦
      • 다른 함수와의 구분을 위해 대문자로 시작, 일반명사로 만듦
      • ES6에서 class 키워드 도입(주로 사용)
    • constructor -> 인스턴스가 초기화될 때 실행되는 생성자 함수, return 값 x
  • 인스턴스를 만드는 방법
    • 함수 이용 시(새 인스턴스를 만들 경우) new 키워드 활용
    • 즉시 생성자 함수(constructor) 실행, 변수에 인스턴스 할당
    • 각각의 인스턴스는 클래스의 고유한 속성과 메서드를 가짐
  • 속성과 메소드
    • 클래스에 속성과 메소드 정의, 인스턴스에서 이용

    • 클래스: 속성의 정의

      • this 키워드 활용 -> this: 함수 실행 시, 해당 scope 마다 생성되는 고유한 실행 context로 new 키워드로 생성 시 해당 인스턴스가 this의 값이 됨
      • this에 할당한다는 것은 인스턴스에 해당 속성을 부여하겠다는 의미
    • 클래스: 메서드의 정의

      • ES5에서는 prototype 키워드를 사용
      • prototype: 모델의 청사진을 만들 때 쓰는 원형 객체
      function Student(name, age, gender){} // 속성 정의
       Student.prototype.study = function() {} // 메서드 정의
      • ES6에서는 생성자 함수와 함께 키워드 안쪽에 묶어서 정의
      class Student {
          constructor(name, age, gender){} // 속성 정의
          study(){} // 메서드 정의
      }
      class Car {
          constructor(brand, name, color){
              this.brand = brand;
              this.name = name;
              this.color = color;
          }
          drive() {
              console.log(this.name + '가 운전을 시작합니다');
          }
      } // ES6 방식으로 작성해 본 Car 클래스

0개의 댓글