当前位置: > 华清远见教育科技集团 > 嵌入式学习 > 讲师博文 > 面对对象语言的特性
面对对象语言的特性
时间:2016-12-14作者:华清远见

1. 万事万物皆为对象。将对象视为一个奇特的变量,它可以存储数据,除此以外,你还可以要求他在自身上执行操作。理论上讲,你可以抽取待求解问题的任何概念化的构件(狗,建筑物,服务等),将其表示为程序中的对象。

2. 程序是对象的集合,它们通过发送消息来告知彼此所想要做的。想要请求对象帮你解决问题,就要调用这个对象自身定义的方法。对象会通过自己定义的方法,来帮你解决问题。

3. 一个对象的定义中,可以包含另外一个,或几个对象。

4. 每个对象都有自己的类型。“每个对象都是某个类(class)的一个实例(instance)。这里的类,和类型,类别是一个意思。

5. 某一特定类型的所有对象都可以接受同样的消息。或者说,同一个类中的对象可以调用同样的方法去解决问题。

面向对象编程,实际上是创建新的数据类型,所有面对对象的程序设计语言都是使用Class这个关键字来表示数据类型的。因为类是描述了具有相同特性(数据元素)和行为(功能)的对象的集合。这里,程序员可以自定义数据类型,并且编程系统帮助你维护自定义的数据类型。当开发一个程序时,好的方法之一就是将对象想象为“服务提供者”,程序本身将通过调用其他对象提供的服务来向用户提供服务。在良好的面向对象设计中,每个对象都可以用来很好的完成一项任务,但它并不试图做更多事情。就是说,它的功能尽可能的单一化,提高内聚性。

oop认为,程序是由对象组成的,这些对象有自己的属性和能够执行的操作。那么,是自己构造对象还是使用已经构造好的对象,取决于预算以及时间。但是,根本上说,只要对象能够满足需求,就不必关心其功能是如何实现的。在oop中,只需要关心对象的外表,就如同计算机生产商只关心电源是否符合要求,而不关心电源内部实现的原理一样,绝大多数的java程序员不必关心对象的具体实现过程,只要保证对象满足他们的需要就可以了。

oop的关键是让每一个对象负责执行一组相关的任务。如果一个对象依赖于另一个对象负责的任务,那么它就访问那个包含该任务的对象。此时,第一个对象就会请求第二个对象执行任务。这种工作方式其实是由过程化设计中人们熟悉的过程调用实现的(就是调用函数,java中是调用方法)。

需要说明的是,一个对象既不能直接访问另一个对象内部的数据,也不能让其他对象访问自己内部的数据。对象之间的通信都是通过方法调用实现的。通过封装对象的数据,可以大限度地提高可重用性,减少数据的依赖性,并将程序的调试时间降到短。

封装(encapsulation): 形式上看,封装不过是将数据和行为结合在一个包中,并对对象使用者隐藏了数据的实现方式。对象中的数据称为实例域(instance field),操作数据的过程称为方法(method)。对于每个特定的类对象实例都有一组特定的实例域值。这些值的集合就是这个对象当前的状态。实现封装的关键在于,绝对不能让类中的方法直接访问其他类的实例域,但可以访问它自己的实例域。程序仅通过对象的方法和对象数据进行交互。

封装给予对象“黑盒”的特征,这是提高重用性和可靠性的关键。

继承:类可以通过扩展另一个类来建立。扩展一个已有的类时,新的类具有所扩展的类的全部属性和方法。

发表评论
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)