-
객체지향 프로그래밍(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