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

Jeff·2024년 10월 29일
2

그동안 많이 들어보고 명확하게 이해하지 못했던 객체 지향 프로그래밍에 대해 공부해보았다.

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

프로그래밍에서 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체로 만들고, 객체들간의 상호작용을 통해 로직을 구성하는 프로그래밍 방법

  • 여기서 객체변수메서드를 가지며 특정 역할을 수행하도록 인간이 정의한 추상적인 개념
  • 이러한 객체들은 각자의 데이터를 가지고 있으며, 다른 객체들과 메시지를 주고받으며 상호작용할 수 있다.

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

1. 추상화

  • 불필요한 세부 사항들을 제거하고 가장 본질적이고 공통적인 부분만을 추출 즉,객체의 공통된 속성(변수)과 행위(메서드)를 추출한다.

  • 불필요한 정보는 숨기고 중요한 정보만을 표현함으로써 프로그램을 간단하게 만드는 것이 가능하다.

    예를 들어보면, 현대, 기아, KG, 쉐보레 등 모두 자동차를 만드는 회사이다. 그래서 우리는 자동차라는 공통적인 특징을 가진 설계도를 가지고 있다고하자. 여기서 르노라는 회사를 추가한다면 우리는 다른 회사에 공통적으로 쓰이는 자동차 설계도를 가져와서 자기의 브랜드에 맞게 만들면 된다.

2. 캡슐화

  • 속성과 기능을 정의하는 변수와 메소드를 클래스라는 캡슐에 넣어서 분류하는 것으로 재활용이 원할하다.
  • 캡슐화를 통해서 정보은닉을 활용 할 수도 있다. (접근제어자의 활용)
  • 내부의 동작을 감추고 외부에는 필요한 부분만 노출시킨다.

3. 상속

  • 클래스의 속성과 행위를 하위 클래스에 물려주거나 하위 클래스가 상위 클래스의 속성과 행위를 물려받는 것을 의미하며, 클래스들 간 공유하는 속성과 기능들을 반복해서 정의할 필요없이 한번만 정의해두고 재사용할 수 있어 반복적인 코드와 공유하는 속성과 기능을 쉽게 접근가능
  • 새로운 클래스가 기존의 클래스의 변수와 메서드를 이용할 수 있게 하는 기능
    • 상속의 장점
      • 재사용으로 인한 코드가 줄어든다
      • 범용적인 사용이 가능하다
      • 자료와 메서드의 자유로운 사용 및 추가가 가능하다.
    • 상속의 단점
      • 상위 클래스의 변경이 어려워진다.
      • 불필요한 클래스가 증가할 수 있다.
      • 상속이 잘못 사용될 수 있다.

4. 다형성

  • 하나의 변수명, 함수명이 상황에 따라 다른 의미로 해석 될 수 있는 것을 의미

  • 어떠한 요소에 여러 개념을 넣어 놓는 것을 의미

    • 오버라이딩 : 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의해서 독자적인 기능을 추가해 사용할 수 있다.
    • 오버로딩 : 같은 이름의 메서드가 인자의 개수나 자료형에 따라 다른 기능을 할 수 있게 함으로 상황에 맞게 유연하게 사용할 수 있다.

    예를 들어보면, 한 명의 남자가 있다고 가정해보면 이 남자는 집에서는 부모님의 아들이 되고, 회사에서는 한 명의 직원이 되고, 취미로 밴드에서 음악을 한다면 한 명의 밴드 멤버가 되는거와 같이 한 명의 남자는 각 상황에 맞게 활동하는거와 비슷한 맥락인거 같다.

객체 지향 프로그래밍의 장단점

장점

  • 프로그램을 유연하게 변경이 가능하다. 객체들은 각각 독립적인 역할을 가지고 있기에 부품을 바꾸듯 코드의 변경이 최소화하고 유지보수하는데에 유리하다.
  • 코드의 재사용을 통해 반복되는 코드를 최소화하고, 간결하게 표현가능하다.
  • 클래스 단위로 모듈화시켜서 개발하기에 업무 분감이 편리하고 대규모 개발에 적합하다.

단점

  • 처리속도가 상대적으로 느리다.
  • 객체의 수가 많아짐으로 용량이 커지고, 복잡해진다.
  • 설계를 하는 단계에서 많은 것을 고려해야하고 시간과 노력이 많이 요구된다.
profile
기본에 충실한 개발자가 목표!

3개의 댓글

comment-user-thumbnail
2024년 10월 29일

결국 객체지향 공부를 하는구나.....

1개의 답글
comment-user-thumbnail
2024년 10월 30일

다시 공부하러 방문함 방문도장 꾹

답글 달기