본문 바로가기
CS

객체 지향 프로그래밍?OOP?

by Hasky96 2022. 6. 23.

객체(Object)?

  • 실생활에 우리가 인식할 수 있는 사물
  • Class의 인스턴스

OOP(Object Oriented Programming) - 문제를 여러 개의 객체 단위로 나눠 작업하는 방식, 객체들이 서로 유기적으로 상호작용하는 프로그래밍 이론

  • 장점
    • 코드 재사용성 증가
    • 생산성 향상 => 독립적인 객체를 사용
    • 자연적인 모델링 => 생각하고 있는 것을 그대로 자연스럽게 구현할 수 있다.
    • 유지보수 우수성 => 캡슐화를 통해 주변 영향이 적기때문에 유지보수 쉬움 => 경제적
    • 규모가 큰 프로젝트에서 사용됨
  • 단점
    • 개발속도가 느림 => 설계단계부터 많은 시간이 소모
    • 실행속도가 느림
    • 코딩 난이도 상승
  • 특징
    • 클래스 => 함수와 변수로 구성
    • 캡슐화 : 데이터와 코드의 형태를 외부로부터 알 수 없게 함. 구조, 역할, 기능을 하나의 캡슐형태로
    • 추상화 : 공통적인 속성과 기능을 추출하여 정의
    • 상속성 : 기존 상위클래스의 기능을 가져와 재사용, 새로운 하위 클래스에 새로운 기능 추가 
    • 다형성 : 상속을 통해 기능을 확장하거나 변경하여 다른 여러형태로 재구성
      • Overloading : 하나의 클래스 안에서 같은 이름의 함수를 사용하지만 다른 용도, 
      • Overriding :  하위클래스에서 상위 클래스의 함수를 재창조해서 사용

 

'CS' 카테고리의 다른 글

Framework 와 Library  (0) 2022.06.29
OSI 7계층이란?  (0) 2022.05.03
인터넷?  (0) 2022.05.02
스케줄링 알고리즘  (0) 2022.05.02
Process에 대해 알아보자!  (0) 2022.04.29