객체 지향 프로그래밍(OOP)

이유정·2022년 9월 21일
0

코드스테이츠 TIL

목록 보기
19/62

객체 지향 프로그래밍 (OOP, Object-oriented programming)

객체 지향 프로그래밍

  • 코드를 추상화, 직관적으로 생각한다.
  • 절차 지향 프로그래밍과는 다르게 데이터와 기능을 한곳에 묶어서 처리한다
  • 속성과 메서드가 하나의 "객체"라는 개념에 포함된다. (Class)
  • 클로저 모듈 패턴, 클래스, 인스턴스에 대해 학습하자.
    변수와 함수가 순차적으로 작동하는 것을 넘어, 데이터의 접근과 처리 과정에 대한 방식 고안
    -> 데이터와 기능이 한번에 묶여서 처리 가능 (객체로 그룹화)

클래스는 속성이 들어가지 않은 청사진이고, 속성을 넣는다면? 객체가 되는 것이다.
이 때의 객체를 인스턴스 객체라고 한다.

이 속성은 생성자를 통해 넣어준다.

캡슐화

데이터(속성)와 기능(메서드)를 따로 정의하는 것이 아닌, 하나의 객체 안에 넣는 것
느슨하게 결합함으로써 코드가 상징하는 실제 모습과 닮는다.
재사용성을 높인다.

+코드나 데이터의 은닉에 포커스

추상화

내부 구현은 복잡한 것에 반해, 실제로 노출되는 부분(인터페이스)은 단순하게 만든다.
단순화된 사용으로 변화에 대한 영향을 최소화한다.

+클래스를 사용하는 사람이 필요하지 않은 메서드를 노출시키지 않고, 단순한 이름으로 정의에 포커스

상속

부모 클래스의 특징을 자식 클래스가 물려받는 것

불필요한 코드를 줄여 재사용성을 높인다.

다형성

객체가 똑같은 메서드여도, 다른 방식으로 구현될 수 있다.
render() 가 조금씩 다르게 작동할 수 있다.
'화면에 뿌린다'는 개념을 부모가 갖고 있음으로서 ! 가능하게 한다.

객체의 특성에 맞게 동일한 메서드를 달리 작성하는 것이 가능해진다!

profile
팀에 기여하고, 개발자 생태계에 기여하는 엔지니어로

0개의 댓글