객체지향 프로그램

최장범·2023년 11월 20일

공부

목록 보기
19/24

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

  • Object Oriented Programming
  • 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법
  • 쉽게 말하자면; 프로그램을 작은 독립적인 부품으로 나누고, 이러한 부품들을 객체라는 단위로 취급하여 로직을 구성하는 방법

특징

  • 추상화 (Abstraction)
    • 객체의 공통적인 속성과 기능을 추출하여 정의하는것
    • 예시) '자동차'와 '오토바이' 공통적으로 '탈 것' 이라는 공통 속성이 있다.
  • 상속
    • 부모 클래스의 속성과 기능을 그대로 이어서 사용할 수 있게끔 하고 자식 클래스에서 기능을 재수정 할 수 있게 하는 것
  • 다형성
    • 객체의 속성이나 기능이 상황에 따라 여러 형태를 가직수 있는 것
    • 오버라이딩
    • 오버로딩
  • 캡슐화
    • 관련이 있는 속성과 기능들을 하나의 캡슐 형태로 만들어 데이터를 보호하는 것
    • 데이터 보호
    • 데이터 하이딩 = 내부 동작을 가리고 필요한 부분만 골라서 노출 시키는것
      • 접근 제어자

장점

  • 코드 재사용성
    - 유연하고 변경이 쉬운 코드
    • 반복적인 코드를 줄이고, 간결하게 표현
  • 유지 보수가 쉬움
  • 사이즈가 큰 프로젝트에 좋음

단점

  • 처리속도가 상대적으로 느리다
  • 설계에 많은 수고가 들어간다

0개의 댓글