Upload
-
View
392
Download
0
Embed Size (px)
DESCRIPTION
Citation preview
PL in C++
박민근
객체지향 프로그래밍
객체지향 프로그래밍
객체지향 프로그래밍의 비유 (1)
객체지향 프로그래밍은 부품을 모아서 조립하는 과정이 비유할 수 있다 . 여기서 객체를 부품이라고 볼 수 있다 .
[20-1]
객체지향 프로그래밍의 비유 (2)
부품별로 분업할 수 있는 것처럼 , 객체를 만들 때도 자신의 객체에 대해서만 노력을 집중할 수 있다 .
제가 발생한 경우에 해당 부품만 교체하면 되듯이 , 객체에 문제가 있는 경우에는 해당 객체만 고치면 된다 .
[20-2]
[20-3]
객체지향 프로그래밍의 비유 (3)
하나의 부품을 여러 제품에 사용할 수 있는 것처럼 , 잘 만들어 놓은 객체는 다음 번 프로젝트에도 재사용할 수 있다 .
부품들의 규격이 정해져 있어야 조립이 가능한 것처럼 , 객체간의 연결 부분도 잘 약속되어 있어야 한다 .
[20-4]
[20-5]
클래스 객체 ( 오브젝트 )
붕어빵 틀 ( 생성된 ) 붕어빵들
클래스객체 ( 오브젝트 )
건담 설계도( 생성된 ) 건담
Battleship Game 에 필요한 객체들
Battleship Game 에 필요한 객체들
Map Pla
yer
Air-craft De-stroyer
Submari
n
Battleship Game 에 필요한 객체들
Map Player
Air-craft De-stroyer
Subma-rine
객체
속성
행동
캐릭터
머리모양 , 키 , 피부색
공격력 , 방어력레벨
아이템
달리기 , 서있기 , 앉기
공격하기 , 방어하기
맞기 , 죽기
크기와 색상이 달라도 다 같은거…
객체
속성
행동
객체
멤버 변수
멤버 함수( 메소드 )
각 객체들의 속성과 행동을 정의하자
Map Player
Air-craft De-stroyer
Subma-rine
Aircraft
위치파손상태
?
Battleship
위치파손상태
?
Cruiser
위치파손상태
?
Destroyer
위치파손상태
?
Submarine
위치파손상태
?
떄린건가 ? 맞은건가 ?
객체는 내가 중심이다
다른 객체에 대해서는 신경쓰지 않아도 된다 .
Aircraft
위치파손상태
히트 체크
Battleship
위치파손상태
히트 체크
Cruiser
위치파손상태
히트 체크
Destroyer
위치파손상태
히트 체크
Submarine
위치파손상태
히트 체크
결국은 다 같은 계열…
부모 클래스
자식 클래스
클래스의 상속 구조
Ship
- 위치 , 파손 상태
- 히트 체크
Aircraft Battleship Cruiser Destroyer Subma-rine
부모 클래스
베이스 클래스
자식 클래스 , 파생 클래스
클래스 제작 실습
Ship.h ( 헤더파일 / 클래스 선언 )Ship.cpp ( 헤더파일 / 클래스 정의 )
• 헤더 파일 (.h) - 선언• 클래스의 인터페이스를 선언한다
• 다른 객체들에게 노출되는 클래스의 인터페이스
• 일반적으로 실제 구현은 없는 외부 껍데기
• 함수의 인터페이스만을 선언한다 .
• 코드 파일 (.cpp) – 정의• 실제 프로그램의 실행 부분을 구현하는 정의 부분
• 함수의 내용을 실제로 구현하는 파일
• 실제 컴파일은 cpp 파일만 이루어 진다 .
[ 과제 ]
BattleShip Game 에 필요한 객체들의 인터페이스 (.h) 를 구현하여라 .
Map Playe
r
Aircraft Battle-
ship
De-stroyer
Cruiser
Subma-rine
Game Manager(Logic)