Notice
Recent Posts
Recent Comments
Link
It won't hurt to try
[C++/윈도우프로그래밍응용]8. 객체지향의 소개 본문
객체지향 프로그래밍(OOP)
소프트웨어를 객체로 구성하는 프로그래밍 개념이자 방법론
- 실제 세계가 객체(Object)들로 구성된 것과 마찬가지
- OOP = Object-Oriented-Programming
1. 객체지향의 소개
객체지향 프로그래밍의 방법
객체가 가지고 있는 상태와 동작을 먼저 구현
- 모든 객체는 상태(state)와 동작(behavior)으로 구성되어 있다고 가정
이후, 객체 간의 상호작용을 구현
- 객체를 생성하고, 객체간의 상호작용을 구현하여 원하는 작업을 수행하도록 구성
2. 객체의 구성
자동차의 예시)
자동차의 상태(state)
- 색상
- 속도
- 기어
자동차의 동작(behavior)
- 출발하기
- 가속하기
- 감속하기
3. 객체지향의 개념
객체지향의 주요개념
1. 캡슐화(encapsulation)
- 데이터와 알고리즘을 하나의 묶음으로 정리한것
- 객체(Object) = 하나의 묶음이자 캡슐(capsule)
- 데이터 = 멤버 변수(member variable)
- 알고리즘 = 멤버 함수(member function)
- 데이터와 알고리즘을 통합하여 재사용성 및 편리성 증대
- 객체의 실제 구현 내용을 외부에 감추는 목적
2. 정보은닉(information-hiding)
- 정보은닉의 종류
①객체의 구체적인 타입 은닉
특정 자료형, 함수, 구현 등에 의존하는 것을 막아
객체간의 결합도를 약화시켜 기능 교체/변경이 쉽도록 함
예) print라는 함수가 있다고 하자. print함수의 인자가 string만 가능하다면 사용자는 print를 사용하기 위해서 숫자의 변수의 값을 문자열로 변경시켜야한다. 하지만 이렇게 되면 특정 함수에 대해 의존성이 높아지게 된다.
②객체의 데이터와 알고리즘 은닉
캡슐화를 통하여 달성 가능
③객체의 구현 은닉
구체적인 구현이 보이지 않더라도, 인터페이스만으로 연동 코드를 생성 가능
3. 상속(inheritance)
부모 클래스를 이어받아 자식 클래스를 생성하는 기법
- 부모클래스(parent, base, super class)
- 이미 작성된 클래스
- 자식클래스(child, derived, sub class)
- 부모 클래스를 이어받아 작성된 새로운 클래스
기존의 코드에 대한 재사용성을 증대
4. 다형성(polymorphism)
객체가 취하는 동작이 상황에 따라 달라지는 것
- 서로 다른 자료형에 대해서 서로 다른 작업 수행
- 예) 함수 중복 (overloading)
객체의 동작 방식이 실행 시간(run-time)에 따라 결정
- 자료형에 따라 객체의 동작이 실행 중에 정의됨
- 실행 시간의 반댓말 <-> 컴파일 시간(compile-time)
- 오버로딩된 함수를 컴파일하고, 실행할때 시간을 결정됨(찾는데 오래걸릴 수 있음
300x250
300x250
'C++ > 윈도우프로그래밍응용' 카테고리의 다른 글
[C++/윈도우프로그래밍응용]10. 생성자와 소멸자 (0) | 2021.09.23 |
---|---|
[C++/윈도우프로그래밍응용]9. 클래스 작성 (0) | 2021.09.23 |
[C++/윈도우프로그래밍응용]7. 인수 전달과 반환 (0) | 2021.09.19 |
[C++/윈도우프로그래밍응용]6. 함수 (0) | 2021.09.19 |
[C++/윈도우프로그래밍응용]5. 반복문 (0) | 2021.09.12 |
Comments