추상화
라고 한다.비유
일뿐 소프트웨어 객체와 실세계 사물 사이에 존재하는 연관성은 희미하다객체지향의 목표는 실세계의 모방
이 아닌 새로운 세계를 창조
하는 것
절차 지향 프로그래밍이란?
대표적으로 C언어가 있으며 말 그대로 순차적으로 처리하는 프로그래밍
컴퓨터의 처리 방식과 유사하여 속도 면에서는 유리하지만 하나의 수정 사항이 프로그램 전체에 영향을 미치고 유지보수 면에서 안좋다는 단점이 있다.
일반화
단순화
class Creautre
{
int _hp;
int _mp;
}
class Knight : Creature
{
}
class Monster : Creature
{
}
Class Monster
{
private int _hp;
public int GetHp{return _hp;}
public void SetHp(int hp){_hp = hp;}
}
class Creautre
{
int _hp;
int _mp;
}
class Knight
{
int _hp;
int _mp;
void Swing();
}
class Archer : Creature
{
void Shoot();
}
오버로딩(Overloding)이란 같은 클래스 내에서 동일한 이름의 함수를 매개변수의 개수나 자료형이 다른 여러개의 함수로 정의하는 것이다
int main(void)
{
cout << "Hello" << endl; // 문자열 출력
cout << 123 << endl; // 정수 출력
cout << 1.324 << endl; // 소수 출력
return 0;
}
오버라이딩(Overriding)이란 하위 클래스에서 상위 클래스의 함수를 재정의하는 것이다.
class Adventure
{
int _hp = 100;
int _mp = 100;
void Attack()
{
// 주먹 공격
}
}
Class Archer : Creature
{
_hp = 90;
_mp = 90;
// 오버 라이딩
void Attack() override
{
// 화살 발사
}
}
ref: [Book]객체지향의 사실과 오해 - 저자 조영호