ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 객체지향 프로그래밍(OOP)
    게임 개발 학원/C++ 2024. 2. 28. 13:45
    반응형

    객체 지향 프로그래밍(Object Oriented Programing)

     

    1. 객체 

    객체 : 모든 실재하는 대상 

     

    2. 클래스

    클래스 : 같은 객체들이 공통적으로 갖는 속성들을 모아서 정의내린 것을 클래스 (이를 추상화라고 함)

    ex) 객체는 붕어빵, 클래스는 붕어빵을 찍는 기계

     

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

    OPP : 필요한 데이터를 추상화하여 속성과 행위를 가진 객체를 만들고,

               그 객체들 간의 유기적인 상호 작용을 통해 로직을 구성하는 프로그래밍 방법

    - 프로그램을 보다 유연하고 변경이 용이하게 만들수 있음

    - 코드의 변경을 최소화하고 유지보수하는데 유리

     

     

    4. OPP의 특징 

    1) 추상화 (Abstration)

    : 객체의 공통적인 속성과 기능을 추출하여 정의하는 것

    2) 상속 (Inheritance)

    : 상위 클래스에서 정의된 기능을 가져와 재사용하거나 , 새로운 기능을 추가해 코드의 중복을 줄이고 재 사용성을 늘림

    3) 다형성 (Polymorphism)

    : 객체가 상속을 통해 기능을 확장, 변경하여 여러 형태의 객체로 재구성 되는 것을 의미 

    Overriding : 상위 클래스에 동일한 이름을 가진 함수가 있을때, 하위 클래스에서 기능을 재정의

    Overloading : 하나의 클래스 안에 같은 이름을 가진 함수를 여러개 만들 수 있음(구분을 위해 함수 인자들은 달라야함)

    4) 캡슐화 (encapsulation)

    : 객체의 속성을 하나루 묶고, 구현 코드를 외부에 감춰 은닉

    객체의 응집도와 독립성을 높여 객체의 모듈화를 지향할수 있게 도와줌(모듈화는 재사용이 가능해 코드 유지보수에 도움)

     

    5. OPP의 장/단점

    장점 

    - 높은 코드 재사용성 : 다형성이 있고, 캡슐화를 통해 모듈화가 가능하기 때문

    - 생산성 향상 : 캡슐화로 객체의 독립성이 높기 때문

    - 자연적 모델링 기능 : 일상의 언어와 유사하다는 장점

    - 유지 보수의 우수성 : 캡슐화로 객체의 독립성이 높고, 다형성이 있어 기능 변경이 용이

    단점

    - 개발속도가 느림 : 모델링 과정에서 시간이 오래걸림

    - 절차 지향에 비해 , 실행 속도가 느림 : 클래스를 확인 후, 실행되기 때문

    - 객체가 많아짐에 따라 용량이 커짐 : Insatace의 증가로 인한 문제점

     

     

    객체(Object)는 소프트웨어 세계에 구현할 대상, 이를 구현하기 위한 설계도가 클래스(Class)

    이 설계또에 따라 소프트웨어 세계에 구현된 실체가 인스턴스(Instance)

     

    반응형

    '게임 개발 학원 > C++' 카테고리의 다른 글

    시험 복습  (0) 2024.03.03
    구조체 padding 현상  (0) 2024.02.28
    Call by value & Call by reference  (0) 2024.02.27
    2024.02.23(배열)  (0) 2024.02.23
    메모용  (0) 2024.02.22
Designed by Tistory.