面对对象
面对对象与面对过程
面对对象(Object Oriented Programming)这种思想是基于面对过程(Procedure Oriented)而言的,面对过程就是对于要解决的问题,对计算机执行一系列指令操作,整个流程下来,使计算机能够一步一步的执行并完成需求。属于流程化编程 像C语言就是面对过程。总而言之,面对过程通俗一点就是写给计算机看的。而面对对象更多的是写给人看的。
面对过程的百度词条是这样子解释的
“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。这些都是以什么正在发生为主要目标进行编程,不同于面向对象的是谁在受影响。与面向对象明显的不同就是封装、继承、类。
面对过程的解决问题的思路
将大象放进冰箱
1、打开冰箱
2、将大象放进冰箱
3、关闭冰箱
面对对象百度词条是这样子的解释的:
面向对象程序设计(Object Oriented Programming)作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面向对象的方法。模型是用来反映现实世界中事物特征的。任何一个模型都不可能反映客观事物的一切具体特征,只能对事物特征和变化规律的一种抽象,且在它所涉及的范围内更普遍、更集中、更深刻地描述客体的特征。通过建立模型而达到的抽象是人们对客体认识的深化。```
面对对象的解决问题的思路
将大象放进冰箱
1、创建一个大象类(大象的基本信息,行为)
2、创建一个冰箱类(冰箱的基本信息,行为)
3、声明一个具体的大象对象
4、声明一个具体的冰箱对象
5、调用冰箱开门的功能
6、调用大象走进冰箱的功能
7、调用冰箱关门的功能
面对对象特点
在进行程序设计中面对对象考虑的更多的是把问题具体到某一个对象上,那么什么是对象呢。联系实际生活,车是一种对象,人也是一种对象,你见到的所有东西都可以把它作为一个对象。因此可以认为:万物皆对象。
面对对象的三大特点:封装,继承,多态
封装
每个对象都有自己特殊的功能与属性。例如汽车,将它作为一个对象,它有自己的特点,比如四个轮子,有油门、座位、喇叭,也有自己的行为,比如启动,停止,鸣笛。不同的对象有着不同的属性与功能。将这些功能与属性从现实生活抽离出来保存到一个特定的类中,这就属于封装。封装就是将细节保护起来不向外界暴露,这很好理解就好比一部手机,你只能看到它的外面看不见它里面的芯片等等。但你知道手机的功能,知道怎么使用。
继承
继承很好理解,就比如儿子有父亲的某些特点。在实际开发中子类继承了父类的一些功能与特点,没有必要在每次需要的时候重新编写一个功能,减少了重复代码,便于日后维护。
多态
相比于前面两个特点,多态不是那么容易理解,就是指不同对象收到相同消息是,会产生不同行为,同一个类在不同的场合下表现出不同的行为特征。例如公司老板让员工开始干活,程序员会开始敲代码,销售会开始联系客户,保洁人员会开始清洁。不可能让老板对程序员喊说快去敲代码,对销售说快去联系客户。这是不符合常理的。多态的使用能够让程序更加人性化。
通过上面的描述可以看出面向对象的优点:易维护、易复用、易扩展,由于面向对象有封装、继承、多态性的特性,可以设计出低耦合的系统,使系统 更加灵活、更加易于维护。缺点:性能不高,毕竟建立大量的类会影响系统性能,降低运行速度。