c面向对象程序设计方法概述

c面向对象程序设计方法概述

ID:13072244

大小:130.00 KB

页数:10页

时间:2018-07-20

c面向对象程序设计方法概述_第1页
c面向对象程序设计方法概述_第2页
c面向对象程序设计方法概述_第3页
c面向对象程序设计方法概述_第4页
c面向对象程序设计方法概述_第5页
资源描述:

《c面向对象程序设计方法概述》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第四章C++面向对象程序设计方法概述会用C++的程序员一定懂得面向对象程序设计吗?不会用C++的程序员一定不懂得面向对象程序设计吗?两者都未必。我曾经和很多C++程序员一样,在享用到C++语法的好处时便以为自己已经明白了面向对象程序设计方法。我就这样糊里糊涂地编写了十几万行C++程序,如此使用C++,就象挤掉牙膏卖牙膏皮那样,真是暴殄天物呀。本章目的不是阐述面向对象的理论,而是用浅显的示例来解说面向对象程序设计的一些重要概念,如封装、继承、组合、虚函数、抽象基类、动态联编、多态性等。本章对本书的后面十章有指导意义。4.1漫谈面向对象在第一次世界大战结束前夕,一

2、个叫做路德维希·维特根斯坦的维也纳人,在意大利的战俘营里写了一本《逻辑哲学论》。这本75页的小册子提出了对象的观点:世界可以分解为事实;事实是由原子事实组成的;一个原子事实是多个对象的组合;对象是简单的;对象形成了世界的基础。五十年之后,面向对象(Object-Oriented,OO)方法论火起来了,现在“对象”真的成为了软件世界的基础。面向对象分析设计(OOAD)方法兴起于20世纪80年代,从90年代起至今它已经在分析设计领域占据了无可争议的主流地位。我在读本科(90年至94年)时就充分地感受到了人们对“面向对象”的狂热。关于“面向对象”的课堂、学术报告会常

3、常人满为患。搞软件研发的人都“言必谈对象”,并引以为荣。面向对象分析设计领域有一些比较著名的学派,如:²Coad和Yourdon学派²Booch学派²Jocobson学派²Rumbaugh学派有趣的是,这些学派的掌门人就像上帝、真主、如来佛,他们用各自的方式定义了这个世界,并留下一堆经书来解释这个世界。这种混乱的局面被学术界称为百家争鸣,每年诞生了许多论著和教授。叫苦的是软件企业和开发人员:没有统一的方法,不好干活啊!10终于等到了那一天,Rational公司招纳了Booch,Jocobson,Rumbaugh,这三位“面向对象”业界的老大强强联手,制定了“统

4、一建模语言”(UML)。1997年11月,UML被国际对象管理组织(OMG)采纳,此后UML成为OOAD建模语言的国际标准。有趣的是,面向对象编程语言比OOAD方法论更早地问世。最早的面向对象编程语言是Smalltalk,由施乐公司研究中心于1970年研制。在软件开发领域,编程实践往往先行于相应的理论。就如人类的进化:先学会讲话,后来才产生文字。用程序员的行话讲,这叫“编程是硬道理”。六七年前,我刚“热恋”面向对象时,急切地想知道什么是面向对象,于是买了一堆书来阅读。不少书籍建议这样找“对象”:分析一个句子的语法,找出名词和动词,名词就是对象,动词则是对象的方

5、法(即函数)。天哪,这不是程序员的做法!我除了发现自己有些“弱智”之外别无收获。当年国民党的文人为了对抗毛泽东的《沁园春·雪》,特意请清朝遗老们写了一些对仗工整的诗,请蒋介石过目。老蒋看了气得大骂:“娘希匹,全都有一股棺材里腐尸的气味。”不好意思,我初读面向对象理论书籍的感觉与老蒋的有点相似。现在我有些心得体会了,我建议程序员应当先学习用C++或者Java编写程序,当他们对面向对象程序设计有了感性认识之后,再阅读面向对象理论书籍,这样才能深入理解面向对象方法。面向对象编程语言很多,如Smalltalk、Ada、Eiffel、C++、Java等等。C++语言最受

6、程序员喜欢,因为它兼容C语言,所以应用最广泛。Java是一种纯面向对象语言,它诞生之初曾红极一时,不少人叫喊着要用Java革C++的命。我认为Java好比是C++的外甥,虽然不是直接遗传的,但也有几分象样。外甥在舅舅身上玩耍时洒了一泡尿,俩人不该为此而争吵。4.2信息隐藏与类的封装特性在一节不和谐的课堂里,老师叹气道:“要是坐在后排聊天的同学能象中间打牌的同学那么安静的话,就不会影响到前排睡觉的同学了。”这个故事告诉我们,如果不想让坏事传播开来,就应该把坏事隐藏起来,“家丑不可外扬”就是这个道理。对于软件设计而言,为了尽量避免某个模块的行为干扰同一系统中的其它

7、模块,应该让模块仅仅公开必须要让外界知道的内容,而隐藏其它一切内容。“信息隐藏”这种设计理念产生了C++类(Class)的封装特性。类可以将数据和函数封装在一起,其中函数表示了类的行为(或称服务)。类提供关键字public、protected和private用于声明哪些数据和函数是公有的、受保护的或者是私有的。这样可以达到信息隐藏的目的,即让类仅仅公开必须要让外界知道的内容,而隐藏其它一切内容。例如:classWhoAmI10{public:voidGetMyName(void);//名字是可以公开的protected:voidGetMyAsset(void)

8、;//财产是受保护的,只有我和继承者可

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。