본문 바로가기
Javascript

OOP

by Doromi 2023. 11. 5.
728x90
반응형
JavaScript는 객체 지향 프로그래밍(OOP) 언어입니다. 객체 지향 프로그래밍은 데이터와 해당 데이터를 조작하는 메서드(함수)를 논리적으로 그룹화하는 프로그래밍 패러다임입니다. JavaScript는 객체, 프로토타입, 상속 및 다른 객체 지향 프로그래밍 개념을 지원합니다.

JavaScript에서 객체는 키-값 쌍의 집합인 속성(properties)과 해당 속성을 조작하는 메서드를 포함할 수 있습니다. 또한 JavaScript의 프로토타입 기반 상속은 객체 간 코드 재사용을 지원하며 객체 지향 프로그래밍의 핵심 원칙 중 하나인 상속 개념을 구현합니다.

예를 들어, JavaScript에서 클래스를 정의하고 해당 클래스로 객체를 생성할 수 있습니다. 또한 클래스의 메서드를 사용하여 객체를 조작할 수 있습니다. 이것은 객체 지향 프로그래밍의 핵심 원리 중 하나인 캡슐화를 지원합니다.

JavaScript는 다른 프로그래밍 패러다임도 지원하며 다중 패러다임 언어로 분류됩니다. 함수형 프로그래밍 또한 JavaScript에서 가능하며, 객체 지향 프로그래밍과 함께 사용할 수 있습니다.따라서 JavaScript는 객체 지향 프로그래밍을 지원하는 다중 패러다임 언어입니다.

 

 

// 자동차 클래스 정의
class Car {
  constructor(make, model, year) {
    this.make = make;
    this.model = model;
    this.year = year;
    this.speed = 0;
  }

  // 가속 메서드
  accelerate(amount) {
    this.speed += amount;
    console.log(`시속 ${this.speed}km/h로 가속 중입니다.`);
  }

  // 감속 메서드
  brake(amount) {
    this.speed -= amount;
    console.log(`시속 ${this.speed}km/h로 감속 중입니다.`);
  }

  // 현재 속도 출력 메서드
  getCurrentSpeed() {
    console.log(`현재 시속: ${this.speed}km/h`);
  }
}

// 자동차 객체 생성
const myCar = new Car('Hyundai', 'Sonata', 2020);

// 자동차 조작
myCar.accelerate(50);
myCar.getCurrentSpeed();
myCar.brake(20);
myCar.getCurrentSpeed();

 

이 예시에서는 Car 클래스를 정의하고, 해당 클래스로 myCar라는 자동차 객체를 생성합니다. 자동차 객체는 브랜드(make), 모델(model), 연도(year), 그리고 현재 속도(speed) 속성을 가지며, accelerate, brake, 그리고 getCurrentSpeed 메서드를 사용하여 가속, 감속 및 현재 속도를 조작합니다.

이것은 객체 지향 프로그래밍의 핵심 원리 중 하나인 캡슐화를 나타내는 예시입니다. 객체는 데이터와 관련 메서드를 함께 묶어 논리적인 단위로 표현할 수 있습니다.

 

728x90
반응형

'Javascript' 카테고리의 다른 글

Async Functions in Javascript  (0) 2024.04.01
OOP(5)  (0) 2023.11.07
OOP(4)  (0) 2023.11.06
OOP(3)  (0) 2023.11.05
OOP(2)  (0) 2023.11.05