JS 36. OOP

하승진·2024년 2월 18일

JS 따라잡기

목록 보기
36/49
post-thumbnail

OOP ?

: Object-Oriented Programming, 객체 지향 프로그래밍

: 여러개의 독립된 단위 "객체"들의 모임으로 프로그램 파악

특징

1. 자료 추상화(Abstraction)

불필요한 정보는 숨기고, 중요한 정보만을 표현함으로써 간단히 만드는 것

객체 내에 자세한 내용을 몰라도 중요 정보를 이용해 해당 객체를 사용 가능

2. 상속(Inheritance)

새로운 클래스가 기존의 클래스의 자료와 연산 이용 가능하게 하는 기능

상속 받는 새로운 클래스 -> 하위 클래스, 자식 클래스

상속하는 기존의 클래스 -> 상위 클래스, 부모 클래스

상속 통해 기존 클래스 상속받은 하위 클래스 이용해 요구에 맞추어 클래스 수정 가능

클래스 간 종속 관계 형성해 객체 조직화

더 일반적 코드를 재사용 및 작성 가능

3. 다형성(Polymorphism)

어떤 한 요소에 여러 개념을 넣어 놓는 것

같은 메소드라도 각 인스턴스에 따라 다양한 형태 가지는 것

즉, 객체의 변수나 메소드가 상황에 따라 다른 의미로 해석

오버 라이딩을 사용해 자식 클래스의 메소드가 부모 클래스의 메소드와 다르게 동작하거나 변수가 다른 값으로 지정 가능

Paypal, Visa 둘 다 PaymentGateway 클래스에서 상속 받은 하위 클래스들이지만 메소드를 각 내에서 오버 라이딩 하면서 해당 컨텍스트에 맞게 동작하는 구조인데, 이것이 다형성

4. 캡슐화(Encapsulation)

클래스 안에 관련 메소드, 변수 등 하나로 묶어줌

바깥에서의 접근을 막아 보안 강화 및 코드 관리에 용이

profile
기어갈지언정 한 발자국씩이라도 가보자

0개의 댓글