台州建设信息港网站,wordpress地址栏显示ip,上海做网站价格,北京大型商场一览表面向对象的四大特征 面向对象的程序设计方法要求语言必须具备抽象、封装、继承和多态性这几个关键要素。 面向对象程序设计#xff0c;是通过为数据和代码建立分块的内存区域#xff0c;以便提供对程序进行模块化的一种程序设计方法。对象是计算机内存中的一块区域#xff0… 面向对象的四大特征 面向对象的程序设计方法要求语言必须具备抽象、封装、继承和多态性这几个关键要素。 面向对象程序设计是通过为数据和代码建立分块的内存区域以便提供对程序进行模块化的一种程序设计方法。对象是计算机内存中的一块区域通过将内存分块每个模块即对象在功能上相互之间保持相对独立。 这些内存模块中不但存储数据而且也存储代码这对保证对象是受保护的这一点很重要只有对象中的代码才可以访问存储于这个对象中的数据这清楚地限定了对象所具有的功能即一个对象在一个软件中所能起到的作用并使对象保护它自己不受未知的外部其它的事件的影响从而使自己的数据和功能不会因此遭到破坏。 在面向对象的程序中对象之间可以通过函数调用实现相互通信。一个对象可以调用另一个对象的函数处于对象外部的代码就没有机会通过直接修改对象的内存区域。当对象的一个函数被调用时对象执行其内部代码来响应这个调用这使tb对象呈现出一定的行为。行为及其结果就是该对象的功能。对象被视为能做出动作的实体动作在对象相互作用时被激发换句话说对象就像在宿主计算机上拥有数据和代码并能相互通信的具有特定功能的一台较小的计算机。 抽象 面向对象鼓励程序员以抽象的观点看待程序即程序是由一组抽象的对象组成的。另一方面我们又可以将一组对象的共同特征进一步抽象出来从面形成“类”的概念。 抽象是一种从一般的观点看待事物的方法它要求程序员集中于事物的本质特征而不是具体细节或具体实现。面向对象鼓励程序员以抽象的观点看待程序也就是说程序是一组抽象的对象类组成的严格讲C程序不是纯面向对象的因为程序中还有像main这样的全局函数。程序从一组对象为起来抽取公共的行为放入到一个类中这是抽象分类的观点不同类的对象具有不同的行为。 类的概念来源于人们认识自然、认识社会的过程。在这一过程中人们主要使用两种方法由特殊到一般的归纳法和由一般到特殊的演绎法。在归纳的过程中我们从一个个具体的事物中把共同的特征抽取出来形成一个一般的概念这就是“归类”在演绎的过程中我们又把同类的事物根据不同的特征分成不同的小类这又是“分类”。对于一个具体的类它有许多具体的个体我们就管这些个体叫做“对象”。 举个例子“人”是一个类具有“直立行走、会使用工具”等一些区别于其它事物的共同特征而张三、李四、王五等一个个具体的人就是“人”这个类的一个个“对象”。 封装 所谓数据封装就是将一组数据和与这组数据相关的操作集合组装在一起形成一个能动的实体也就是对象。在这种情况下用户是不可以直接操作数据的他必须通过和数据相关的操作来访问数据。换句话说数据封装就是给数据提供了与外界联系的标准接口无论是谁只有通过这些接口使用规范的方式才能访问这些数据。同时由于客户端总是和接口打交道他也就不必要了解数据的具体细节。 由此可见封装要求一个对象应具备明确的功能并具有接口以便和其它对象相互作用。同时对象的内部实现代码和数据是受保护的外界不能访问它们只有局部于对象的代码才可以访问对象的内部数据。对象的内部数据结构的不可访问性称为数据隐藏。封装使得一个对象可以像一个部件一样用在各种程序中而不用担心对象的功能受到影响。 早期的软件设计方法把数据和程序混在一起结构化很差被细称为“一碗面条”的编程方法。在这一阶段程序的可读性与可维护性都很差于是产生了“软件危机”为了解除这种危机便提出了结构化程序设计。在结构化程序设计里虽然程序被分为不同的模块以便大大减少不同模块之间的相互作用但数据仍然属于整个程序的。这就又存在着这样一个问题一方面程序员在设计每一个模块的时候都要或多或少地作全局考虑模块与模块之间的耦合度相对太高了势必增加不同模块的程序员之间沟通所带来的工作量另一方面在某地方对数据的改动有可能又对整个程序产生难以预料的影响。随着软件工程的进一步发展软件越来越大数据越来越多这个问题也越来越突出。 数据封装的提出就是为了解决这一问题。它一方面使得程序员在设计程序时可以专注于自己的对象“各人自扫门前雪莫管他人瓦上霜”同时也切断了不同模块之间数据的非法使用减少了出错的可能性。 继承 所谓继承是指一个对象可以获得另一个对象的特性的机制它支持层次类这一概念。例如红苹果属于苹果类而苹果类又属于水果类。通过继承低层的类只需定义特定于它的特征而共享高层类中的特征。 多态 不同的对象可以调用相同名称的函数并可导致完全不同的行为的现象称为多态性。 如果子类中的成员函数对父类中的成员进行了覆盖当一个指向中子类的父类指针或引用了子类的父类引用当使用它调用虚函数然后根据实际的调用对象调用子类中的覆盖函数而不是父类中了虚函数这种语法现象叫多态。 利用多态性程序中只需进行一般形式的函数调用函数的实现细节留给接受函数调用的对象。这大大提高了我们解决复杂问题的能力。例如绘制三角形与绘制正方形所调用的绘制函数其效果肯定是不同的但我们可以设计一个公共的Draw()函数代表绘制而不同对象的绘制图形的具体细节则分别由具体对象负责实现。 转载于:https://www.cnblogs.com/1996-1-0-3-0/p/9469521.html