객체 지향 프로그래밍

객체 지향 프로그래밍(OOP, Object Oriented Programming)은 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체로 만들고, 객체들 간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법입니다.

장점은 다음과 같습니다.

  • 모듈화, 캡슐화로 유지보수에 용이
  • 중복 코드 감소로 가독성과 유지보수에 용이
  • 객체 단위로 재활용이 가능하기 때문에 재사용성이 높음
  • 현실 세계 개념을 코드로 표현하기 용이

단점은 다음과 같습니다.

  • 절차 지향에 비해 상대적으로 속도가 느리고 메모리 사용량이 많음
  • 설계, 구현 단계에서 더 많은 시간과 노력이 필요
  • 잘못된 설계의 경우 유지보수가 더 어려워질 수 있음

객체

객체(Object)는 데이터(속성, Property)와 행동(메서드, Method)을 하나로 묶은 독립적인 단위입니다.

  • 속성(Property): 객체의 상태를 나타내는 변수
  • 메서드(Method): 객체가 수행할 수 있는 기능

자동차로 예시를 들 경우 다음과 같습니다.

  • 속성: 색상, 속도, 연료량
  • 메서드: 가속, 감속, 방향전환

4가지 특징

추상화

추상화(Abstraction)는 불필요한 세부사항은 숨기고, 핵심적인 속성과 동작만 표현한 것입니다.

캡슐화

캡슐화(Encapsulation)는 데이터와 메서드를 하나로 묶고, 외부에서 직접 접근하지 못하도록 제한하는 것입니다.

C++의 경우 접근 제어자를 사용합니다.

상속

상속(Ingeritance)은 기존 클래스의 속성과 기능을 물려받아 새로운 클래스 생성하는 것입니다.

코드 재사용성과 확장성이 향상됩니다.

다형성

다형성(Polymorphism)은 같은 메서드 이름이 객체 타입에 따라 다르게 동작하는 것입니다.

오버로딩과 오버라이딩이 있습니다.

오버로딩은 같은 이름과 반환값이지만, 매개변수가 다릅니다.
오버라이딩은 부모 메서드를 자식이 재정의하는 것입니다.

Date:     Updated:

카테고리:

태그:

etc 카테고리 내 다른 글 보러가기

댓글남기기