[TIL] 객체 지향 프로그래밍

sooyoung choi·2024년 1월 25일
0

CS

목록 보기
15/21

객체 지향 프로그래밍

  • Object-Oriented Programming (OOP)
  • "객체"를 사용하여 애플리케이션을 설계하고 구축하는 프로그래밍 패러다임

주요 원칙

  1. 캡슐화
  • 데이터(속성)와 데이터에서 작동하는 메서드(함수)를 클래스라는 단일 단위로 묶는다.
  • 외부 간섭 및 오용으로부터 데이터를 안전하게 유지하는 데 도움이 된다.
  1. 상속
  • 기존 클래스를 기반으로 새 클래스를 만든다.
  • 코드를 재사용하고 클래스 간의 계층적 관계를 설정하는 데 도움이 된다.
  1. 다형성
  • 상속을 통해 서로 다른 클래스를 동일한 클래스의 인스턴스로 처리할 수 있는 능력
  • 메소드가 작동하는 객체에 따라 다양한 작업을 수행할 수 있다.
  1. 추상화
  • 복잡한 구현 세부 정보를 숨기고 객체의 필수 기능만 표시한다.
  • 복잡성을 줄이고 효율성을 높인다.

이점

  1. 모듈화
  • 객체의 소스 코드는 다른 객체의 소스 코드와 독립적으로 작성되고 유지 관리될 수 있다.
  1. 재사용성
  • 클래스는 다른 프로그램에서 재사용될 수 있다.
  1. 플러그 가능성 및 디버깅 용이성
  • 특정 객체에 문제가 있는 것으로 판명되면 간단히 애플리케이션에서 해당 객체를 제거하고 대체 객체로 다른 객체를 연결할 수 있다.

OOP는 확장 가능하고 유지 관리 가능한 애플리케이션을 설계하기 위해 소프트웨어 엔지니어링에서 사용된다.


자바스크립트에서 OOP 사용해보기


1. 클래스 정의

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

    display() {
        console.log(`This is a ${this.brand} ${this.model}.`);
    }
}

2. 인스턴스 생성

let myCar = new Car("Toyota", "Corolla");
myCar.display();

3. 상속

class ElectricCar extends Car {
    constructor(brand, model, batteryLife) {
        super(brand, model); 
        this.batteryLife = batteryLife;
    }

    displayBatteryLife() {
        console.log(`The battery life is ${this.batteryLife} hours.`);
    }
}

let myElectricCar = new ElectricCar("Tesla", "Model 3", 24);
myElectricCar.display(); 
myElectricCar.displayBatteryLife();

0개의 댓글