Presentation is loading. Please wait.

Presentation is loading. Please wait.

Internet Computing KUT Youn-Hee Han

Similar presentations


Presentation on theme: "Internet Computing KUT Youn-Hee Han"— Presentation transcript:

1 Internet Computing Laboratory @ KUT Youn-Hee Han
객체지향 방법론 Internet Computing KUT Youn-Hee Han

2 1. 객체지향 개념 Problem Description
“ …customers are allowed to have different types of bank accounts, deposit money, withdraw money and transfer money between accounts” Web Programming

3 1. 객체지향 개념 Procedural Approach
bool MakeDeposit(int accountNum,float amount); float Withdraw(int accountNum,float amount); struct Account { char *name; int accountNum; float balance; char accountType; }; Web Programming

4 1. 객체지향 개념 Procedural Approach Focus is on procedures
Most data is shared: no protection More difficult to modify Hard to manage complexity Web Programming

5 1. 객체지향 개념 Object Oriented Procedural Customer, money, account
withdraw, deposit, transfer Object Oriented Customer, money, account Web Programming

6 1. 객체지향 개념 Mapping the world to software
Objects in the problem domain are mapped to objects in software 011101 10011 11101 11010 010101 10101 Web Programming

7 Account 1. 객체지향 개념 Object Oriented Approach Withdraw Deposit Transfer
Data and operations are grouped together Account Withdraw Deposit Transfer Web Programming

8 1. 객체지향 개념 Object Oriented Approach class Account { public:
float withdraw(); void deposit(float amount); private: float balance; ); Web Programming

9 1. 객체지향 개념 문제: 부산에 사시는 할머니에게 꽃을 보낸다
절차적 방법론 (Procedural Method), 절차적 언어 func1() { 꽃을 산다. } func2() { 택배직원을 부른다.} func3() { 택배직원으로 하여금 꽃을 배송시킨다.} func4() { 택배직원은 부산까지 꽃을 배송한다.} func5() { 부산에 있는 택배지국은 할머니에게 꽃을 보낸다.} main() { func1(); func2(); func3(); func4(); func5(); } Web Programming

10 1. 객체지향 개념 문제: 부산에 사시는 할머니에게 꽃을 보낸다
객체지향적 방법론 (Object-oriented Method), 객체지향적 언어 class 나자신 { …. } class 꽃판매원 { … } class 택배직원 { … } class 택백부산지국 { …} class 할머니 {… } main() { 나자신 a; 꽃판매원 b; 택배직원 c; 택배부산지국 d; 할머니 e; a.buyFlower(b); a.call(c); c.deliverFlowerTo(d); d.deliverFlowerTo(e); } Web Programming

11 1. 객체지향 개념 In computer science, object-oriented programming is a computer programming paradigm. Object-oriented programming was born at the end of the 1960s, when the early field of software engineering had begun to discuss the idea of a software crisis. As hardware and software became increasingly complex, how could software quality be maintained? Object-oriented programming in part addresses this problem by strongly emphasizing modularity in software. Object-oriented programming is claimed to promote greater flexibility and maintainability in programming, and is widely popular in large-scale software engineering. Web Programming

12 1. 객체지향 개념 Procedural vs. Object-Oriented Programming
The unit in procedural programming is function, and unit in object-oriented programming is class Procedural programming concentrates on creating functions, while object-oriented programming starts from isolating the classes, and then look for the methods inside them. Procedural programming separates the data of the program from the operations that manipulate the data, while object-oriented programming focus on both of them at the same time. Web Programming

13 1. 객체지향 개념 객체지향 방법론의 이점 실생활의 개념과 거의 동일하다 프로그래머가 작성해야 할 프로그램의 양이 줄어든다
각 객체들마다 완벽한 모듈화(Modularity)를 제공하기 때문에 코드 재사용(Code Reuse)을 극대화 할 수 있다. 유지보수가 편리하다 Web Programming

14 2. 객체와 클래스 클래스 (Class) 객체 (Object) 유사한 특징을 지닌 객체에 대한 속성의 포멧을 지님.
객체를 만드는 공장, 붕어빵 틀 객체 (Object) = 클래스 인스턴스 (Instance) 객체 (Object) 의미 있는 객체 자체와 그 객체의 속성 (property or attribute) 과 메소드 (method) 의 소프트웨적인 묶음 실세계의 객체의 특성 상태(state)와 행동(behavior) 소프트웨어 객체 속성(property)와 메소드(method) 객체 다이어그램 Web Programming

15 2. 객체와 클래스 object class Objects and Classes girl
Classes reflect concepts, objects reflect instances that embody those concepts. object class girl Jodie Daria Jane Brittany Web Programming

16 2. 객체와 클래스 “Class” refers to a blueprint.
It captures the common properties & behavior of the objects instantiated from it It defines the variables and methods the objects support A class can have two kinds of members: Fields(=variable): data variables which determine the status of the class or an object methods: executable code of the class built from statements. It allows us to manipulate/change the status of an object or access the value of the data member “Object” is an instance of a class. Each object has a class which defines its data and behavior Web Programming

17 2. 객체와 클래스 속성 (Property) 메소드 (Method) 객체의 특징적인 면들을 기술
보통 이름과 그에 해당하는 값들의 쌍으로 표현된다. 메소드 (Method) 객체의 행동 방식을 정의 객체들 사이에 서로 어떤 기능을 수행하라고 명령 임의의 사람 객체 You가 자전거 객체 Your Bicycle에게 기어를 바꾸어 달라고 하는 메소드를 호출 Web Programming

18 2. 객체와 클래스 Object vs. Instance 임의의 클래스는 특정 객체를 생성하는 공장 (Factory) 이다.
객체를 지칭할 때나 일반적인 객체를 통칭할 때 사용 Instance 클래스에서 방금 생성된 객체(object)를 지칭. 임의의 클래스는 특정 객체를 생성하는 공장 (Factory) 이다. 객체는 클래스에서 정의한 모든 특성을 가지게 된다. 클래스는 객체의 틀(frame)과 같은 역할을 한다. 붕어빵틀과 붕어빵 = 클래스와 객체 Web Programming

19 2. 객체와 클래스 Objects as instances of Classes
The world conceptually consists of objects Many objects can be said to be of the same type or class My bank account, your bank account, Bill Gates’ bank account … We call the object type a class An Object is instantiated from a Class BankAccount myAccount; myAccount = new BankAccount; Web Programming

20 2. 객체와 클래스 캡슐화(encapsulation) 캡슐화의 장점 소프트웨어를 깔끔하고, 복잡하지 않게 만듦
내부에 있는 속성은 외부로부터 보호 원자의 핵처럼 안쪽은 속성들이 있고, 외부에 메소드들이 둘러싸고 있다. 캡슐화의 장점 소프트웨어를 깔끔하고, 복잡하지 않게 만듦 모듈화(Modularity) 하나의 객체에 대한 원시프로그램(source program)은 다른 객체의 원시프로그램에 영향을 주지 않고 유지된다. 정보 은닉(Information hiding) 객체는 다른 객체가 외부에서 접촉할 수 있는 공개된 인터페이스 (public interface)를 제공해줌과 동시에, 외부에 아무 영향을 미치지 않고 자신만의 정보를 처리할 수 있는 기능이 있다. Web Programming


Download ppt "Internet Computing KUT Youn-Hee Han"

Similar presentations


Ads by Google