OOA、OOD、OOP

 

oo:面向对象,个人理解简言之就是设计出来的东西别人很容易理解和使用,
1、比如你设计(oop)出来的方法类,我只管调用接口,不需要知道内部实现原理,怎么封装的不管。
2、但是你提供的接口方便理解:比如说这个类是关于描述一个人的,那么我应该猜到肯定有手、脚、耳朵、嘴巴等等属性,并且我在调用脚这个属性时,有知道它有“步行”这个动作,而这个动作是其他属性没有的。

OOA:
Object Oriented Analysis 面向对象分析方法

OOD:
Object Oriented Design 面向对象设计

OOP:
Object Oriented Programming 面向对象的程序设计

OOP的三大特性

面向对象编程的三大特性

封装 :就是将一个类的使用和实现分开,只保留部分接口和方法与外部联系
继承:子类自动继承其父级类中的属性和方法,并可以添加新的属性和方法或者对部分属性和方法进行重写。继承增加了代码的可重用性。
多态:多个子类中虽然都具有同一个方法,但是这些子类实例化的对象调用这些相同的方法后却可以获得完全不同的结果,多态性增强了软件的灵活性

OOP =Object Oriented Programming,=面向对象的程序设计

对象(Object):包含一定的数据结构和状态的实体。
操作(Operation):作用于对象的行为,如访问和处理对象的状态。
封装(Encapsulation):定义对象和操作,只提供抽象的接口,并隐藏它们的具体实现。
Ada 83 已经支持上述3个特性,因此被称为基于对象(oriented-based)的语言;但面向对象程序设计经过十年的发展, Ada95 基于上述要素又增添了以下两个 Ada83 不支持的要素:

继承(Inheritance):通过继承现有类型的性质,创建新的数据类型,而不影响原有数据类型。
多态性(Polymorphism):判定数据类型集合中各类型的区别,使程序可以按照它们的共同特性来书写。
对 新特性的需求是由三份报告[Dod 1990]指出的,具体见 Ada Rantinale 的 Part Two- 4 Object Oriented Programming-- 4.1 Background and Concepts,可以更好的理解继承和多态性。

OOP 的继承从理论上讲是模仿人的思考方法,将对象分类,如:car,bus 这两个数据类型是从数据类型vehicle 继承而来的,它们作为 vehicle 的一类,自然继承了 vehicle 的特性,同时具有自身独有的特性;而 wheel 却不是 vehicle 的一类,只是 vehicle 的一个组成部份,因此不是从 vehicle 继承而来。同样,vehicle 有一些操作,如 start,reverse, car和bus也继承下来,如果必要,也可加上自己独有的操作,如 drive_at_200mph。但在实际程序中,人们往往忽视了面向对象的内涵,甚止于 C++ 这些语言玩了好几年,也只是用上了面向对象的语法,而没有形成面向对象的思考方法

posted @ 2015-10-18 21:57  穿山甲随笔-iOS开发  阅读(706)  评论(0编辑  收藏  举报