[[TableOfContents]] = OOP = '''Object Oriented Programming''' : 객체 지향 프로그래밍. ~~객체를 지향하는 프로그래밍입니다.~~ 이 이전에 Object Based Progamming 것이 있었다. 이 다음 세대의 프로그래밍 기법은 GenericProgramming이라고 이야기된다. == OOP... == === Definition === Object-oriented programming is based in the principle of recursive design. 1. Everything is an object. 2. Objects perform computation by making requests of each other through the passing of messages. 3. Every object has it's own memory, which consists of other objects. 4. Every object is an instance of a class. A class groups similar objects. 5. The class is the repository for behabior associated with an object. 6. Classes are organized into singly-rooted tree structure, called an inheritance hirearchy. === Basic Idea === ”Emphasis from verbs to nouns” It’s a natural way for people to ”think in objects”. Program consists of objects interacting with eachother Objects provide services. === 이익 === Clearer and easier to read Easier to maintain Code is more easily reusable == 용어 == * [Class] * [Object] * [Instance] * [Association](연관) * [Relation](관계) * [Inheritance](상속) * [Method] * [protocol] * [Encapsulation](캡슐화) * [Interface] * [Implementation](구현 : 인간의 개념 속에 존재하는 생각과 사상 등을 실제 물리적인 객체로 구성하는 일련의 작업. 예를 들어 새로운 구조의 컴퓨터 시스템을 만들어 내는 작업과 설계 과정을 거쳐서 전달된 내용을 실제 프로그램으로 구성하여 컴퓨터에서 사용할 수 있도록 하는 작업 등이 모두 구현 작업의 한 가지에 해당된다고 할 수 있다. : 정보문화사 컴퓨터 용어사전 발췌) * [Attribute] * [Class variable] * [Data member] * [Member function] * [Operation] * [Private and public members] * [Polymorfism] * [Virtual functions] * [Templates] * [Generic programming] === Basic rules to define objects === Objects should correspond real word objects Responsibily area should be simple and compact All actions should be delegated to objects Don’t mix responsibilities Keep responsibily areas as general as possible to garantie reuse. == 엮어가기 == [UML]로 표기할수 있다. [객체지향용어한글화토론] == 바깥고리 == === 도움되는 페이지 === [http://users.evitech.fi/~hannuvl/sy04/oop_cp.htm] : C++ OOP강의. [http://www.codeproject.com/cpp/oopuml.asp UML&OOP] ---- [프로그래밍분류]