目录
(一)、面向过程编程POP(Process-oriented programming)
(二)、面向对象编程OOP (Object Oriented Programming)
二、面向对象编程OOP (Object Oriented Programming)详解
在了解面向对象编程之前首先要先了解编程中两大思想:
●面向过程
●面向对象
一、编程中两大思想
(一)、面向过程编程POP(Process-oriented programming)
面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候再一个一个的依次调用就可以了。
举个栗子:将大象装进冰箱,面向过程做法:
①.打开冰箱门
②.大象装进去
③.关上冰箱门
面向过程,就是按照我们分析好了的步骤,按照步骤解决问题。
●优点: 性能比面向对象高,适合跟硬件联系很紧密
的东西,例如单片机就采用的面向过程编程。
●缺点:没有面向对象易维护、易复用、易扩展
(二)、面向对象编程OOP (Object Oriented Programming)
面向对象是把事务分解成为-一个个对象,然后由对象之间分工与合作。
举个栗子:将大象装进冰箱,面向对象做法。
先找出对象,并写出这些对象的功能:
1.大象对象
●进去
2.冰箱对象
●打开
●关闭
3.使用大象和冰箱的功能
面向对象是以对象功能来划分问题,而不是步骤。
●优点: 易维护、易复用、易扩展,由于面向对象有
封装、继承多态性的特性,可以设计出低耦合的
系统,使系统更加灵活、更加易于维护
●缺点:性能比面向过程低
二、面向对象编程OOP (Object Oriented Programming)详解
在面向对象程序开发思想中,每-一个对象都是功能中心,具有明确分工。
面向对象编程具有灵活、代码可复用、容易维护和开发的优点,更适合多人合作的大型软件项目。
面向对象的特性:
●封装性
●继承性
●多态性
(一)、封装性
封装:就是把属性私有化,提供公共方法访问私有对象。把成员变量、方法封装到一个类中,允许其它类访问的,就设置为public;允许子类访问的,就设置为protected;只能自己访问的,就设置为private。
(二)、继承性
面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。
通过继承创建的新类称为“子类”或“派生类”。
被继承的类称为“基类”、“父类”或“超类”。
继承的过程,就是从一般到特殊的过程。
要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。
在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。
(三)、多态性
多态同一个行为具有多个不同表现形式或形态的能力。是指一个类实例(对象)的相同方法在不同情形有不同表现形式。多态机制使具有不同内部结构的对象可以共享相同的外部接口。这意味着,虽然针对不同对象的具体操作不同,但通过一个公共的类,它们(那些操作)可以通过相同的方式予以调用。
多态的优点:
- 1. 消除类型之间的耦合关系
- 2. 可替换性
- 3. 可扩充性
- 4. 接口性
- 5. 灵活性
- 6. 简化性
多态存在的三个必要条件:
- 继承
- 重写(子类继承父类后对父类方法进行重新定义)
- 父类引用指向子类对象
简言之,多态其实是在继承的基础上的。比如说今天我们要去动物园参观动物,那么你说我们去参观兔子、参观绵羊、参观狮子、参观豹子都是对的,但你不能说我们去参观汽车。在这个例子中,子类具有多态性:除了使用自己的身份,还能充当父类。
三、小结
面向对象编程就是一组对象互相配合通过沟通完成特定功能
做软件苦苦追求的一种境界是可重用性(reusable),可扩展性。如果是面向过程,一般情况是属性和方法它们是分开的,他们不是聚合的关系,不是合在一起的,这样要复用起来比较麻烦,复用的层次只是局限于方法这个层次上,而面向对象则不同,它是把属性和方法综合在一个里面。综合在一起复用的时候是整个对象进行复用。所以面向对象和面向过程相比,前者更加容易让我们达到可重用性。