欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    面向对象程序设计吴迪毛琛.ppt

    • 资源ID:5461775       资源大小:442.04KB        全文页数:23页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    面向对象程序设计吴迪毛琛.ppt

    面向对象程序设计吴迪 毛琛,1.类与对象,对象(Object)是类(Class)的一个实例(Instance),重点是类的设计,而不是对象的设计。类提供关键字public、protected 和private,这样可以达到信息隐藏的目的,即让类仅仅公开必须要让外界知道的内容,而隐藏其它一切内容。但不要滥用封装。两种人:“以数据为中心”、“以行为为中心”,2.继承,继承:public继承:所有域都继承 private继承:public域的内容成private域 protected继承:public域的内容成protected域的逻辑关系:B继承A那么逻辑上一定是B从属于A,不能为了让B拥有A的一些功能,就滥用继承。,公鸡为什么追打一只下了蛋的母鸡?!,因为母鸡下了一个鸭蛋,3.虚函数和多态,除了继承外,C+的另一个优良特性是支持多态,即允许将派生类的对象当作基类的对象使用。加上虚函数和抽象基类后,“多态”的好处就体现出来了。抽象基类只管定义纯虚函数的形式,具体的功能由派生类实现。,例如:XXXX的几何形体系列问题,“抽象基类”和“多态”有如下突出优点:,应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。可以大大提高程序的可复用性。派生类的功能可以被基类指针引用,这叫向后兼容。,良好的编程风格,1.命名约定有不少人编程时用拼音给函数或变量命名,这样做并不能说明你很爱国,却会让用此程序的人迷糊,程序中的英文一般不会太复杂,用词要力求准确。,Microsoft提倡的匈牙利命名法,new、delete 与指针,在C 语言中,函数malloc 用于申请内存,函数free 用于释放内 存。由于C+兼容C 语言,所以new、delete、malloc、free 都有可能一起使用。malloc-free new-delete在用delete 或用free 释放p 所指的内存后,应该马上显式地将p 置为NULL,以防下次使用p 时发生错误。预防“野指针”(1)指针没有初始化。(2)指向已经释放了的内存地址。eg.,Const的使用,1.强制保护函数的参数值不发生变化 void f(String s);/pass by value void g(String/name 的值可能改变,void g(const String/name 的值不会改变,2.强制保护类的成员函数不改变任何数据成员的值 class Stackpublic:void push(int elem);void pop(void);int Count(void)const;/const 类型的函数private:int num;int data100;int Stack:Count(void)const+num;/编译错误,num 值发生变化pop();/编译错误,pop 将改变成员变量的值return num;,一点其他的小体会,1.不要写过复杂的语句。2.不要写功能很多很复杂的函数,程序要尽 量的模块化,每个函数执行比较单一的功能,便于理解和修改。,什么是面对对象?是一种思维方式 是看待世界的方法,传统的:程序=算法+数据结构 面对对象的 程序=对象+消息,面对过程 VS 面对对象早期:全局变量+goto面对过程:顺序、选择、循环面对对象:对象、消息,面对对象的特点1、符合人们对客观世界的认识规律2、对需求变化具有很强的适应性3、支持软件复用4、可维护性好,C+VS CQuestion:看着这么多人心甘情愿地花大几十,甚至上百元买书研究C+和面对对象,我搞不明白为什么非要研究面对对象,直接用C语言的方法来写程序不是也可以吗?而且程序更直观,容易看懂,我对C+和面对对象就不那么感冒,总感觉面对对象太复杂了,各种概念太多,程序写起来不好控制,大家和我有同感吗?FROM TOPIC.CSDN.NET,Answer:我现在被老板要求写一个大程序,偶是做语音识别的,懂行的都知道这类程序有多么地庞大,另外可能也知道剑桥出的一个语音识别的toolkit-HTK。这个非常成功的toolkit就是用c写的,可以说,c用来写庞大的复杂程序是完全行得通的。但是,遗憾的是,这样一个工具,我们只能够用,却不能够用来做深入的开发,因为我们发现,要想改动中间一个地方,牵涉改动的地方太多太多了,大量的全局变量,在十几个模块的头文件及其实现文件中被调用来调用去的,除非你彻底吃透这个程序(只有原作者才能达到这个要求),才能动手更改。而老板给我的任务居然是要我修改其中的关键性代码。,说了这么多,大家也知道我什么意思了,不错,c是可以完成很多工作,也可以做得很优秀,但是它做出来的东西,尤其是大的复杂的程序,不具备良好的可重复开发性。这使得后来者们要浪费非常多的时间和精力在阅读冗长的代码和猜测作者的意图上。而一个严格按照面向对象标准开发的c+程序,我们对它其中众多的功能模块几乎不要彻底看懂它,就能够直接拿过来供我们开发的时候使用。当我们调用某个模块的某个函数的时候,也不用担心会影响到其他模块的功用。我现在就是在做这方面的工作,所以对C+和C相比的优越性有着切身的体会。我想我实在无法完成老板对我的要求,所以我正准备发信给HTK的作者们,询问他们这个工具的C+版能不能尽快出来。,Advice:Thinking in C+!写C+程序,功夫全在程序外。如果事先你能分析好你要实现的目标,把各模块的关系基本弄清,那么你会觉得用C+很顺手。,继承 VS 组合继承 is a组合 has a 继承削弱了封装(Peter Coad 和 Mark Mayfield),使用建议:,官方:只要有可能的时候就应该使用组合,而继承只有在必要时才使用 实际:根据使用场合而定,继承并非有害的,面对对象设计注意事项1、尽可能向用户提供最少的接口2、在设计时考虑到重用/扩展3、提供复制和比较对象的方法4、尽可能使作用域最小谢谢!,class Apublic:void Func(void);void Test(void)A*p;A a;p=back,

    注意事项

    本文(面向对象程序设计吴迪毛琛.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开