- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
面向对象的程序设计第1讲 类和对象(上)(参考教材第8章内容)黄永峰:mailto:yfhuang@tsinghua.edu.cnyfhuang@tsinghua.edu.cn电话1)教材:C++程序设计,谭浩强编著(2)讲授12次课,中间停4次课(3)考核成绩为:平时30%+笔试40%+小学期30%(4)实验次数12次,第2周开始;每次2.5分,选做题不计分(5)小学期完成2道综合程序训练,每道题15分(6)积极鼓励创新、希望多上网讨论(适当给予奖励)(7)教学目标:上学期是掌握程序设计的基本方法;本学期是掌握大型程序设计方法--OOP(8)参考书:课程要求本学期的知识点MAP本讲主要内容1.1 面向对象程序设计方法2.2 类的声明和对象的定义1.3 对象成员的引用1.4 简单应用举例1.1 面向对象程序设计方法软件工程的发展历史软件附属于硬件面向服务软件作为单独产品面向过程面向对象面向构件50年代现在 60年代70年代80年代90年代思想决定了方法、方法决定了效率1.1 面向对象程序设计方法1.1 面向对象程序设计方法C++语言优点保留了C语言的面向过程设计方法增加了面向对象的程序设计方法增加了通用程序设计方法程序数据更安全代码复用性更好Bjarne Stroustrup面向过程程序设计思想范式:程序=算法+数据结构思路:top down细分模块(自顶而下,逐步细分)将程序按“功能”分解为多个子过程(函数)。程序设计是以算法(函数)中心特点:函数与数据分离;数据都是公用的,一个函数可以使用任何一组数据,而一组数据又能被多个函数所使用核心问题:算法(函数)设计和数据定义8.1 面向对象程序设计方法面向过程程序设计方法存在的问题难以满足大型、复杂程序设计难以对程序进行修改、扩展程序代码的重用性差程序数据安全性差程序调试和测试困难与现实世界有点脱节……8.1 面向对象程序设计方法面向对象程序设计基本思想范式:程序 = 对象+消息思路:bottom up设计对象。任何系统都是有若干对象组成,对象间通过消息作用构成一个有序系统(软件)。以数据(对象)为中心对象有两大属性:属性(数据)和行为(方法/函数)特点:数据和函数捆绑,即属性和行为是对象不可分离两特征核心问题:对象的设计与封装对象=属性(数据)+行为(方法)三国杀游戏软件中对象程序对象消息面向对象程序设计基本方法STEP1:对象定义。设计设计程序所需的各种类型对象,即决定把哪些数据和操作(算法)封装在一起STEP2:消息调用。编写main()来实现对象间消息交互。消息交互(函数调用)来实现对象之间通信。各个对象的操作完成,整体软件的任务也就完成了例 请客吃饭程序8.2对象的定义和抽象对象的概念任何具备属性(attribute)和行为(behavior)两种要素的事物都可看成对象(object)对象是构成系统的基本单位,对象之间通过发送和接收消息互相联系C++的对象都是由数据(属性)和函数(方法)两部分组成;是通过类(class)来描述的对象(t1)行为对象(t1)属性对象的抽象(描述)-“类”类(class)描述相同对象的共同特征。即类是对象的抽象(abstraction),对象是类的具体实例(instance) 两者关系类似于结构体类型和结构体变量。先声明结构体类型,再用它去定义若干结构体变量类是抽象的,不占用内存;对象是具体的,占用存储空间类的声明方法类可理解为一种特殊的用户自定义的数据类型。定义对象之前,先要申明类也可使用别人已申明类(类库)来定义对象C++中声明一个类格式如下:class 类名{ private: 私有数据和函数; public: 公用数据和函数;};成员访问限定符类的属性之一--封装性进行数据和行为的绑定引入访问限定实现公用接口与私有实现的分离成员函数的性质类成员函数和面向过程的函数一样:也有返回值和函数类型成员函数可访问本类(对象)中任何成员(包括私有和公用)成员函数的定义方式有:类内定义和类外定义∷作用域限定符 函数inline形式(参考4.5节)函数调用时需要一定的时间和空间的开销。C++提供一种提高效率的方法,即在编译时将被调函数的代码直接展开到主调函数中,而不是在函数执行时将流程转出去。这种能嵌到主调函数中的函数称内置函数(inline)申明为内置函数只需在函数首行的左端加一个关键字inline即可如果在类体中定义的成员函数中不包括循环等控制结构,编译系统会自动将它看作内置函数。类内申明内置成员函数,可省inline;而类外则不能省类的访问限定是源代码级的保护;即有编译器来检查,不是运行时的限定你要了解学生经济情况吗?找食堂师傅面向对象程序的组织:类声明+成员函数实现+主函数的对象调用类声明和成员函数实现分离8.
原创力文档


文档评论(0)