객체 지향 프로그래밍(OOP, Object-Oriented Programming)

  • 소프트웨어 개발 방법론 중 하나로, 현실 세계의 객체를 모델링하고 이를 기반으로 프로그램을 작성하는 방식

주요 특징

  1. 객체(Object): OOP에서 모든 것은 객체입니다. 객체는 데이터와 해당 데이터를 처리하는 메서드(함수)로 이루어져 있습니다. 예를 들어, 자동차 객체는 자동차의 속성(색상, 속도, 모델)과 행동(주행, 정지, 엔진 작동)을 포함합니다.
  2. 클래스(Class): 클래스는 객체를 생성하기 위한 템플릿 또는 설계도 역할을 합니다. 클래스는 객체의 구조(속성)와 동작(메서드)을 정의합니다. 객체는 클래스를 기반으로 생성됩니다.
  3. 캡슐화(Encapsulation): 캡슐화는 객체의 상태(데이터)와 행동(메서드)을 하나의 단위로 묶고, 외부에서 직접 접근하지 못하게 하는 개념입니다. 캡슐화는 정보 은닉을 통해 객체의 내부 구현을 숨기고, 외부에서는 객체의 공개된 인터페이스를 사용할 수 있도록 합니다.
  4. 상속(Inheritance): 상속은 기존 클래스(부모 클래스 또는 슈퍼 클래스)의 특성을 다른 클래스(자식 클래스 또는 서브 클래스)가 상속받아 확장하거나 재사용하는 개념입니다. 상속을 통해 코드의 재사용성과 확장성을 향상시킬 수 있습니다.
  5. 추상화(Abstraction): 추상화는 복잡한 시스템 또는 객체의 핵심 특징을 간추려서 모델링하는 과정입니다. 객체 지향 프로그래밍에서는 클래스와 인터페이스를 사용하여 추상화를 구현합니다.
  6. 다형성(Polymorphism): 다형성은 같은 이름의 메서드나 연산자를 다양한 객체에서 다르게 동작하도록 하는 개념입니다. 다형성을 통해 객체 간의 상호작용을 일관성 있게 처리할 수 있으며, 인터페이스와 추상 클래스를 활용하여 다형성을 구현할 수 있습니다.
  7. 메시지 패싱(Message Passing): 객체 간의 상호작용은 메시지를 통해 이루어집니다. 객체는 메시지를 받아 해당 메시지를 처리하는 메서드를 호출하고, 이를 통해 객체 간의 통신이 이루어집니다.

정리

  • 객체 지향 프로그래밍은 현실 세계의 객체를 모델링하고 이를 기반으로 프로그램을 작성하는 개발 방법론입니다. 주요 특징으로는 캡슐화, 상속, 추상화, 다형성이 있습니다.

참고

  • ChatGPT-4.0

보완/복습

  • 2023.11.01 생성
  • 2023.11.23 복습