




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象论文关于面向对象方法在C语言应用方面理解论文范文参考资料 关键字:面向对象Object Oriented、CALLBACK函数、宏定义Great Definition、 Event、 Message 摘要:从个人对面向对象技术与C语言的理解出发,通过讲述面向对象思想在C语言当中的实际例子,来说明C这个在我国语言基础最雄厚,相对较古老的语言,用面向对象思想做指导有广阔的前景。 前言 面向对象(Object Oriented,OO)它是上世纪90年代末期软件开发策略的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。这些都是以C,甚至VC为基础的。然而多年以来广大高校一直是在培养C的使用者。C使用也确实比较广泛,比如手机上的软件开发,所有这些都是和C离不开的。虽然C是一门很好的语言,但是它的编译速度,代码效率,编译后的代码大小都限制了它在嵌入式上的应用。但现在的嵌入式CPU越来越快,内存容量变大。个人觉得用C也应该没有什么理由。这使我觉得似乎是嵌入式编译器的限制。那么在面向过程的时代产生的C语言能否使用面向对象的思想呢个人认为是肯定可以的。 (1)对象:对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。 (2)对象的状态和行为。对象具有状态,一个对象用数据值来描述它的状态。对象还有操作,用于转变对象的状态,对象及其操作就是对象的行为。对象实现了数据和操作的结合,使数据和操作封装于对象的统一体中 (4)类的结构。 在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系,即一般-具体结构关系,整体-部分结构关系。 一般具体结构称为分类结构;整体部分结构称为组装结构,它们之间的关系是一种“与”关系。 (5)消息和策略。 对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发送给某个对象时,消息包含接收对象去执行某种操作的信息。发送一条消息至少要包括说明接受消息的对象名、发送给该对象的消息名(即对象名、策略名)。一般还要对参数加以说明,参数可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名。 (1)对象唯一性。每个对象都有自身唯一的标识,通过这种标识,可找到相应的对象 (2)抽象性。分类性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。 (3)继承性。继承性是子类自动共享父类数据结构和策略的机制,这是类之间的一种关系。在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。 (4)多态性(多形性)多态性使指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。多态性允许每个对象以适合自身的方式去响应共同的消息增强了软件的灵活性和重用性。 三、 面向对象思想的目的是框架化,手段是抽象: 面向对象的思想就是为了解决这样的理由。编写一个程序(甚至说是一个工程),从无到用是困难的,从有到丰富是更加困难的。面向对象将程序的各个行为化为对象,而又用抽象的办法将这些对象归类(抽象),从而将错综复杂的事情简化为几个主要的有机组合(框架化)。 个人觉得面向对象的编程思想就是:一个大型工程是分层次结构的,每层又由抽象的结构连接为整体(框架化),各个抽象结构之间是彼此独立的,可以独立进化(继承,多态)。层次之间,结构之间各有统一的通讯方式(通常是消息,事件机制)。其实我们的身边很多东西都是这样组成的:比如说电脑:电脑是由主板,CPU加上各种卡组成的。这就是一个框架化。而忽略不同的CPU,不同的主板,不同的声卡,网卡,显卡的区别,这就是抽象。 四、 以前C语言编程中常用的“面向对象”策略 其实C语言诞生以来,人们就想了很多办法来体现“面向对象”的思想。下面就来说说我所知道的策略概念。但受篇幅限制不作详细描述。 1宏定义; 2静态的入口函数,保证函数名相同,利用标志位调用子函数保证相同的函数名; 3CALLBACK函数。 如果说静态入口函数实现了一个可管理的宏观的话,CallBack就是实现了一个可进化的微观:它使得一个函数可以在不重新编译的情况下实现功能的添加。也有人持反对态度,因为它用了函数指针。函数指针虽然灵活,但是由于它要访问内存两次才可以调用到函数,第一次访问函数指针,第二次才是真正的函数调用。它的效率是不如普通函数的。在一个不太苛刻的环境下,函数调用本身就不怎么耗时,函数指针的性能又不是特别糟糕,使用函数指针其实是一个最好的选择。但是函数指针除了性能,最麻烦的地方就是会导致程序的“支离破碎”。试想:在程序中,你读到一个函数指针的时候,如果你不知道这个函数指针指向的是哪个函数,那将给工作造成诸多不便。 为什么要使用Event和Message。具体的函数调用会带来很多的理由(虽然从效率上讲,这样做是很好的)。为了提高程序的灵活性,Event和Message的办法产生了。用名字剖析的办法代替通常的函数调用,这样,如果双方对这样的剖析是一致的话,就可以达到一个统一。 Event和Message还有建立进程间通信的功能。进程将自己的消息发给“制约中心”(简单的就是一个消息队列,和一个while循环不断的取消息队列的内容并执行),制约程序得到消息,分发给相应的进程,这样其他进程就可以得到这个消息并进行响应。 Event和Message是很灵活的,因为你可以随时添加或者关闭一个进程,(仅仅需要添加分发消息的列表就可以了)Event和Message从程序实现上将我觉得是一样的,只不过概念不同。Event多用于指一个动作,比如硬件发生了什么事情,需要调用一个什么函数等等。Message多用于指一个指示,比如什么程序发生了什么操作命令等等。 其实编程序和写文章一样,都是先有一个提纲,然后慢慢的丰富。先抽象化得到程序的骨架,然后再考虑各个方面的其他内容
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国甜八宝数据监测报告
- 快递考试题目及答案
- 空中乘务考试题及答案
- 果蔬坚果加工工岗位操作技能考核试卷及答案
- 炼钢准备工专项考核试卷及答案
- 2025年中国多功能平板跑步机数据监测研究报告
- 矿用发电车操作工基础考核试卷及答案
- 综合布线装维员上岗考核试卷及答案
- 精神控制考试题及答案
- 金蝶软件考试题及答案
- 桩基础平法施工图(平法施工图识读)
- GB/T 9113-2010整体钢制管法兰
- GB/T 23338-2018内燃机增压空气冷却器技术条件
- 癫痫的急救与护理课件
- 海姆立克急救法完整版本课件
- 国家地表水环境质量监测网采测分离实施方案课件
- 控压钻井技术及实践培训讲义工艺课件
- 厚度仪点检表
- 北京市水利工程维修养护定额
- 自然拼读法在小学英语教学中的应用的实践研究
- 无领导小组面试评分表模板
评论
0/150
提交评论