Microsoft Foundation Class
객체지향을 이해하라 1.1 객체지향 방법론 4 가지 1.2 객체지향 기반 원리 5 가지
호서대학교 컴퓨터공학
목차 Part 1. 객체지향의 기본적인 이해 1.1 객체지향의 방법론 4 가지 1.1.1 추상화 (abstraction) 1.1.2 캡슐화 (encapsulation) 1.1.3 모듈성 (modularity) 1.1.4 계층성 (hierarchy)
1.2 객체지향의 기본 원리 5 가지 1.2.1 객체 (object) 1.2.2 클래스 (class) 1.2.3 인터페이스 (interface) 1.2.4 컴포넌트 (component) 1.2.5 관계 (relationship) 호서대학교 컴퓨터공학
3
1.1 객체지향 방법론 4 가지 – 1. 추상화 객체지향 방법론에서 추상화란 ?
– 업무를 관리해야 할 때 중요하지 않는 세세한 것까지 일일이 신경 쓸 필요는 없다 . – 중요하고 필수적인 사항만을 다루는 것이 바 람직하다 . – 모든 일에는 필수적으로 중요한 것이 있지만 , 생략하여도 본질을 이해하는 것은 어렵지 않 다. 호서대학교 컴퓨터공학
4
1.1 객체지향 방법론 4 가지 – 2. 캡슐화 객체지향 방법론에서 캡슐화란 ?
– 중요하고 세부적인 구현 방법에 대한 자세한 사항 을 캡슐 안에 숨겨두는 것 . –
Ex) 자동차의 엔진 , 소프트웨어 시스템의 데이터 .
– 캡슐화는 다른 말로 은닉화 , 데이터 감추기 (Data hiding) 이라고도 한다 . – 캡슐화 된 데이터를 조작할 수 있는 방법을 외부에 제공하여 동작하는 것을 인터페이스 (interface) 라 고 한다 . 호서대학교 컴퓨터공학
5
1.1 객체지향 방법론 4 가지 – 3. 모듈성 객체지향 방법론에서 모듈성이란 ?
– 크고 복잡한 것을 좀 더 작고 관리할 수 잇 는 조각으로 나누어 , 이들 조각을 독립적 으로 개발할 수 있는 개념 . – 이러한 조각을 구조적 방법론에서는 서브 프로그램이나 모듈이라 부르지만 , 객체지 향 방법론에서는 객체라고 부른다 .
호서대학교 컴퓨터공학
6
1.1 객체지향 방법론 4 가지 – 4. 계층성 객체지향 방법론에서 계층성이란 ?
– 보편적인 것을 상위에 두고 특수한 것을 하 위에 두는 것 . –
EX) 자동차는 보편적이고 승용차 , 화물차 등은 특 수적 .
– 등급이나 순서에 따라 계층적인 구조로 조 각들을 배열하는 것 .
호서대학교 컴퓨터공학
7
1.1 객체지향 방법론 4 가지 – 4. 계층성 객체지향 방법론에서 계층성이란 ?
호서대학교 컴퓨터공학
8
1.2 객체지향 기본 원리 5 가지 – 1. 객체 객체지향 기본 원리에서 객체란 ? – 사전적인 의미 –
‘ 보거나 만질 수 있는 사물’
–
‘ 공간을 차지하고 있는 물질적인 사물’
– 어플리케이션에서 명확한 한계와 의미를 갖는 사물이 나 개념 또는 추상화라고 할 수 있다 . – 단 객체지향 개념에서의 객체란 , 물리적인 사물만이 아 닌 개념적인 것도 객체로 판단한다 .
호서대학교 컴퓨터공학
9
1.2 객체지향 기본 원리 5 가지 – 2. 클래스 객체지향 기본 원리에서 클래스란 ? – 객체의 추상화라고 볼 수 있다 . – 중요하고 필수적인 사항을 중심으로 그 이미지 나 관념을 표현하는 것을 추상화라고 하며 , 이 추상화를 설계한 것이 클래스이다 . –
Ex) 자동차의 설계도 , 음식의 레시피 등등
– 모든 객체는 클래스를 기반으로 생성되며 , 클 래스는 객체를 생성하는 수단이 된다 . 호서대학교 컴퓨터공학
10
1.2 객체지향 기본 원리 5 가지 – 2. 클래스 클래스의 기본적인 구성 Class AutomationTransmissionCar {
// 클래스 명과 함께 생성
int body; // 차체 int engine; // 엔진 int steering; // 조향장치 int transmission; // 변속기 int wheel; // 바퀴 Public: // 접근 지정자 public void start(); // 출발하다 void stop(); // 정지하다 void accelerate(); // 가속하다 void slowDown(); // 감속하다 void turnLeft(); // 좌회전하다 void turnRight(); // 우회전하다 Private: // 접근 지정자 private void changeSpeed(); // 변속하다 };
호서대학교 컴퓨터공학
11
1.2 객체지향 기본 원리 5 가지 – 3. 인터페이스 객체지향 기본 원리에서 인터페이스란 ? – 데이터의 동작과 변화를 주는 방법 즉 , 행 위들이 기술되며 이와 같이 서비스를 명시 하는데 사용되는 행위의 집합 . – C++ 언어에서의 인터페이스는 순수 가상 멤버 함수 (pure virtual member function) 만 멤버로 포함하는 추상 클래스로 정의 .
호서대학교 컴퓨터공학
12
1.2 객체지향 기본 원리 5 가지 – 3. 인터페이스 객체지향 기본 원리에서 인터페이스란 ? Class ICompositeVideo { Public: virtual void Send(int Y, int C) = 0; virtual void Receive(int Y, int C) = 0; };
호서대학교 컴퓨터공학
13
1.2 객체지향 기본 원리 5 가지 – 4. 컴포넌트 객체지향 기본 원리에서 컴포넌트란 ? – 레고 블록 쌓기와 같은 방식으로 소프트웨 어를 만드는 기술 . – 객체지향적인 컴포넌트란 클래스나 인터페 이스 등의 각각의 데이터나 함수 등을 말한 다. –
Ex) 라디오의 부속품 , 음식의 재료 , 건물의 건축 자재 .
호서대학교 컴퓨터공학
14
1.2 객체지향 기본 원리 5 가지 – 5. 관계 객체지향 기본 원리에서 관계란 ? – 객체지향에서의 관계는 크게 4 가지로 분류된다 . –
종속 관계 (subordinate relationship)
–
연관 관계 (associative relationship)
–
일반화 관계 (generalization relationship)
–
실현 관계 (realization relationship)
– 객체지향에서의 관계는 각각의 클래스에 대한 관계 를 말하며 , 객체 사이의 대부분의 관계는 종속 , 연 관 , 일반화의 세가지 형태로 대부분 관계된다 . 호서대학교 컴퓨터공학
15
1.2 객체지향 기본 원리 5 가지 – 5. 관계 객체지향 기본 원리에서 관계란 ?
호서대학교 컴퓨터공학
16
Q&A
Q&A 호서대학교 컴퓨터공학
17