对面向对象的理解

面向对象是基于万物皆对象这个哲学观点,在现实生活中的任何物体都可以归为一类事物,而每一个个体都是一类事物的实例。把一个对象抽象成类,具体上就是把一个对象的静态特征动态特征抽象成属性方法,也就是把一类事物的算法和数据结构封装在一个类之中,程序就是多个对象和互相之间的通信组成的。

面向对象有三大特性:封装、继承和多态。

封装

封装将一类事物的属性数据和处理该数据的方法抽象成一个整体,以实现独立性很强的模块,尽可能地隐藏内部的细节,只
保留一些对外接口使之与外部发生联系。用户无需知道对象内部方法的实现细节,但可以根据对象提供的外部接口(对象名和方法)访问该对象。使得用户只能见到对象的外特性,而对象的内部实现对用户是隐蔽的。封装的目的在于把对象的设计者和对象者的使用分开,使用者不必知晓行为实现的细节,只须用设计者提供的消息来访问该对象。 

好处:

  1.  实现了专业的分工。将某一类事物封装成一个独立的实体后,各程序员可以在需要的时候调用,从而实现了专业的分工;
  2.  隐藏信息,实现细节。通过控制访问权限可以将可以将不想让客户端看到的信息隐藏起来,只
保留一些对外接口使之与外部发生联系。
  3. 减少耦合:可以独立地开发、测试、优化、使用、理解和修改
  4. 减轻维护的负担:可以更容易被程序员理解,并且在调试的时候可以不影响其他模块
  5. 有效地调节性能:可以通过剖析确定哪些模块影响了系统的性能
  6. 提高软件的可重用性
  7. 降低了构建大型系统的风险:即使整个系统不可用,但是这些独立的模块却有可能是可用的

继承

继承则是进一步将一类事物共有的属性和行为抽象成一个父类,而每一个子类是一个特殊的父类--有父类的行为和属性,也有自己特有的行为和属性。通过继承,使得新建一个类变得容易。这样做扩展了已存在的代码块,进一步提高了代码的复用性,减少代码冗余,而且还促进系统的可扩充性。

 多态

如果说封装和继承是为了使代码重用,那么多态则是为了实现接口重用。多态的一大作用就是为了解耦--为了解除父子类继承的耦合度。简单来说,多态就是允许父类引用(或接口)指向子类(或实现类)对象。多态使得不同的类所产生的对象能够对相同的消息作出不同的反应,极大地提高了代码的通用性.。

面向过程和面向对象的区别

面向过程是指分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

而面向对象是把构成问题的事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题步骤中的行为。

面向过程多是基于功能的思想来进行考虑和设计的,而面向对象的程序设计则是基于对象的角度来考虑问题。这样做能够使得程序更加简洁、清晰。

面向对象面向的是数据结构,面向过程面向的是算法。虽然面向对象在数据构造方面优于面向过程,但是面向过程是算法设计的实现基础,面向对象的程序设计最终还要转化为面向过程。

最后给大家讲一个在别处看到的例子,让大家对面向对象和面向过程有一个比较形象的理解,想必大家都知道那个“老张开车去东北”的例子,用面向对象的思路理解:你首先得造一个车,然后包括挂档,每一步都得自己一步一步的线性去完成;用面向对象的思路来理解的话,直接调个车,找个司机,然后告诉他去东北,然后其他的就不用你管了,你可能隐约的感觉到,面向对象的思路似乎更加简洁直观。 

总之,面向对象的特性提高了大型程序的重用性和可维护性,同时也提高了系统的灵活性与健壮性,面向对象的中的属性和方法的可访问性提高了程序的安全性。

猜你喜欢

转载自blog.csdn.net/qq_36132127/article/details/81151613