Object Oriented Programming

  1. 프로그램 설계 철학
  2. OOP의 모든 것은 객체로 그룹화
  3. 4가지 주요 개념을 통해 재사용성을 얻음(캡슐화, 상속, 추상화, 다형성)

클래스와 인스턴스

  • 일종의 원형(original form), 객체 생성을 위한 첯사진
  • 인스턴스는 클래스의 사례(instance object)
  • 클래스는 객체를 만들기 위한 생성자(constructor) 함수를 포함

캡슐화 Encapsulation

  • 데이터와 기능을 하나의 단위로 묶는 것
  • 은닉(hide) - 구현은 숨기고, 동작은 노출
  • 느슨한 결합에 유리(Loose Coupling) - 언제든 구현 수정 가능

하나의 객체 안에 속성과 메서드를 넣어서 묶는 것을 의미 따라서 느슨하게 결합된다.

느슨한 결합은 코드 실행 순서에 따라 절차적으로 코드를 작성하는 것이 아닌, 코드가 상징하는 실제 모습과 닮게 코드를 모아 결합하는 것

은닉화의 특징을 살려서 코드를 작성하면 객체 내 메서드의 구현만 수정하고, 노출된 메서드를 사용하는 코드 흐름은 바뀌지 않도록 구현 가능

추상화 Abstraction

내부 구현은 복잡, 노출되는 부분은 단순의 개념

캡슐화는 코드나 데이터의 은닉이 핵심, 추상화는 클래스를 사용하는 사람이 필요하지 않은 메서드 등을 노출시키지 않고, 단순한 이름으로 정의이 핵심

클래스 정의 시, 메서드와 속성만 정의한 것을 인터페이스라 하고 이것이 추상화의 본질

상속

기본(부모) 클래스(base class)의 특징을 파생(자식) 클래스(derived class)가 상속받음

사람과 학생을 가정, 상속을 이용하여 학생(Student) 클래스는 사람(Human) 클래스를 상속받음. 학생은 추가적으로 학습 내용, 공부하다 와 같은 속성/메서드를 추가

다형성 Polymorphism

똑같은 매서드라고 해도 다른 방식으로 구현 가능

카테고리:

태그:

업데이트:

댓글남기기