본문 바로가기
☁️ 구름 X kakao DeepDive/☁️ HTML CSS JS

[JavaScript] OOP, 다형성

by 뽀짜꼬 2025. 1. 9.
728x90
반응형

기억이 휘발되기 전에

제일 최근에 공부한 내용부터 업로드해야겠다.


OOP(Object-oriented programming)란?

객체 지향 프로그래밍 (OPP)는 Java 및 C++을 비롯한 많은 프로그래밍 언어의 기본이 되는 프로그래밍 패러다임.

객체 지향 프로그래밍은 여러개의 독립된 단위 “객체”들의 모임으로 컴퓨터 프로그램을 파악한다 ⇒ 객체 지향 프로그래밍은 객체들의 모임이다.


객체 지향 프로그래밍이 나오기 이전

: 명령어의 목록을 나열(절차지향) 하는 기능 구현을 목적으로 작성했음

⇒ 코드를 길게 작성하다보면 알아보기 힘든 복잡한 코드 생성

 

 

 

 

하나의 문제 해결을 위한 독립된 단위인 객체로 만듬

→ 알아보기 쉽고, 재사용성 높아졌음.

 

 

왼쪽 사진 예시

car 에 대한것들

animal에 대한것들 모아두었음

 

 

 

 

 

 

OPP 특징

1. 자료 추상화 (Abstraction)
: 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단히 만드는것.
⇒ 그 객체 안에 자세한 내용을 몰라도 중요 정보를 이용해서 해당 객체를 사용할 수 있게 됨.
ex. 커피머신을 이용할 줄 알면, 커피머신이 어떻게 작동하는지 몰라도 커피를 마실 수 있다.

 

2. 상속 (Inheritance)
상속은 새로은 클래스가 기존의 클래스의 자료와 연산을 이용할 수 있게 하는 기능.

  • 상속을 받는 새로운 클래스 = 부클래스, 파생클래스, 자식클래스
  • 상속하는 기존의 클래스 = 기반클래스, 상위클래스, 부모클래스

(상속을 통해 기존의 클래스를 상속 받은) 하위 클래스를 이용해 프로그램의 요구에 맞추어 클래스 수정 가능, 클래스 간의 종속 관계를 형성함으로써 개체를 조직화 할 수 있음.

애니멀 클래스 ⇒ 멍멍이클래스, 고양이클래스

 

3. 다형성 (Polymorphism)

: Poly(많은) + morph(형태) = 다양한 형태를 가질 수 있다.

  • 다형성 개념이란 어떤 한 요소에 여러 개념을 넣어놓는 것.도형이라는 클래스에 getArea(){return width * this.height}이 있다면 삼각형 클래스에서는 이 메소드를 다른 방식으로 구할것이며, 사각형 클래스에서도 이 메소드에서 다른 방식으로 Area를 구할것.
  • ex. “도형” 이라는 부모 클래스에 삼각형, 사각형, 원 클래스가 있음

같은 메소드라도 각 인스턴스에 따라 다양한 형태를 가질 수 있는것을 다형성이라고 함.

  • 즉, 객체의 변수나 메소드가 상황에 따라 다른 의미로 해석될 수 있는것을 말함.
  • 오버라이딩(Overriding)을 사용하여 자식 클래스의 메서드가 부모 클래스의 메서드와 다르게 동작하거나 변수가 다른 값으로 지정될 수 있다.

4. 캡슐화 (encapsulation)

: 클래스 안에 관련 메서드, 변수 등을 하나로 묶어준다.

⇒ 바깥에서의 접근 을 막아 보안이 강화되고, 잘 관리되는 코드를 제공한다.

class { variables, Methods }

728x90
반응형