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

최 소 금·2024년 10월 30일
0

객체 지향이란?

  • 객체라는 독립된 다위들로 나누어 설계하는 방법

객체지향 프로그래밍의 기본 구성 요소

객체 지향 프로그래밍의 핵심은 '객체'라는 개념에서 시작된다.
객체 지향 프로그래밍의 기본 구성 요소인 클래스객체, 메서드속성, 상속, 다형성, 캡슐화, 추상화에 대해 개인적으로 학습하기 위해 작성한다.

  • 클래스는 객체를 만들기 위한 틀이며, 객체는 클래스에서 생성된 실체.
  • 메소드속성은 객체의 행동과 상태를 정의.

객체지향 프로그래밍의 4가지 특징

  1. 추상화 (Abstraction):

    • 복잡한 시스템의 중요한 정보기능만을 드러내고, 세부 사항은 숨기는 과정.
    • 이를 통해 사용자는 객체의 핵심 기능에 집중할 수 있으며, 시스템의 복잡성을 줄임.
      • 예: TV 리모콘의 버튼만 알면 된다. 어떠한 방식으로 TV가 작동하는 지는 알 필요 없다.
  2. 상속 (Inheritance):

    • 기존 클래스(부모 클래스)속성메소드새로운 클래스(자식 클래스)가 물려받는 기능.
    • 코드의 재사용성을 높이고, 클래스 간의 계층 구조를 형성
      • 예: 동물 클래스가 있을 때, 이를 상속받아 고양이, 개와 같은 구체적인 동물 클래스를 만들 수 있습니다.
  3. 다형성 (Polymorphism):

    • 동일한 메소드가 다양한 객체에서 다르게 동작할 수 있는 능력.
    • 이는 코드의 유연성을 높이고, 다양한 형태로 기능을 확장할 수 있게 합니다.
      • 예: 소리내기()라는 메소드를 사용하면, 강아지는 짖고, 고양이는 야옹거리는 것. 같은 메소드지만 각 동물에 따라 다르게 행동한다.
  4. 캡슐화 (Encapsulation):

    • 객체의 데이터와 그 데이터를 처리하는 메소드를 하나의 단위로 묶고, 외부에서 직접 접근하지 못하게 하는 것.
    • 이를 통해 데이터의 무결성을 보호하고, 객체 내부의 구현 세부 사항을 숨길 수 있음.
      • 예: 스마트폰에는 전화기, 음악 플레이어, 등 여러기능이 있지만, 사용자에게는 복잡한 작동 원리는 숨겨져 있다. 사용자는 버튼을 눌러 원하는 기능을 사용할 수 있다.

알아가면서...

객체지향에 대해 아직 모르는 것이 많으며... 객체 지향이라는 산을 아직까지 넘지 못한 것에 많은 생각과 반성을 하게 되는 것 같다.
바로 SOLID 원칙을 공부해야겠다.

profile
부족함이 많지만 항상 배우고 있는 학부생입니다 :>

0개의 댓글