OOP 핵심정리

백아름·2023년 5월 11일
0

프론트엔드

목록 보기
14/80

클래스와 인스턴스

javascript의 객체(object)와 OOP의 객체(Instane)는 다르다.

1. 클래스

청사진 = 설계도(대체로 동일하게 적용): 자동차가 기능하기 위해 필요한 네 바퀴, 핸들, 좌석, 엔진
클래스는 차를 만드는 자동차 공장 & 설계도에 가깝다.
대문자로 시작하며 일반명사로 만든다.

2. 인스턴스

객체 = 특정한 자동차 모델
인스턴스는 생성된 차 자체에 가까움.

3. new 키워드

new 키워드를 써서 instance를 만듦: 일반 함수 정의와 조금 다름

4. 생성자 함수

constructor: 인스턴스가 초기화될 때 실행하는 생성자 함수. 즉, 자바스크립트 함수는 재사용 가능한 코드를 묶음으로 사용하는 것 외에 객체를 생성하기 위한 방법으로도 사용되는데, 이렇게 객체를 생성하는 역할을 하는 함수를 생성자 함수라고 함. 생성자 함수는 new 키워드를 사용하여 함수를 호출가는데 return문 없어도 새로운 객체를 반환시킴. 반드시 new 키워드를 사용해야 생성자 함수가 작동하고, 사용하지 않으면 일반함수와 동일하게 동작하면서 새로운 객체를 반환하지 않는다. 객체지향프로그래밍에서 보편적인 개념임.

5. ES5 클래스 작성 문법

function Car(brand, name, color) {
  this.brand = brand;
  this.name = name;
  this.color = color;
}

Car.prototype.refuel = function() {
  // 연료 공급을 구현하는 코드
}

Car.prototype.drive = function() {
  // 운전을 구현하는 코드
}

6. ES6 클래스 작성 문법

class Car {
    constructor(brand, name, color) {
        this.brand = brand;
        this.name = name;
        this.color = color;
    }
}

객체지향 프로그래밍

1. 객체 지향 프로그래밍

4가지. 추상화, 캡슐화, 상속, 다형성

2. 캡슐화

정보은닉, 인터페이스
개발자 A가 작동했던 코드가 개발자 B에 의해서 영향을 받지 않아야함.
인터페이스 -> 이것만 사용해서 클래스를 통제해라.

3. 추상화

자동차
자동차 소프트웨어 개발에 필요한 요소만 골라서 추상화한다.
물류 소프트웨어 -> 엔진 시동 걸기

4. 상속

5. 다형성

프로토타입

1. 프로토타입

2. .prototype

3. .proto

4. 클래스, 인스턴스, 프로토타입의 관계

profile
곧 훌륭해질 거에요!

0개의 댓글