第1章 面向对象程序设计基本概念
面向对象的C++语言学习课件 东华大学计算机科学与技术学院
第1章 面向对象程序设计基本概念 为什么要提出面向对象程序设计 面向对象语言和方法 类、对象和消息 面向对象程序设计特点 面向对象程序的结构
面向对象的C++语言学习课件 东华大学计算机科学与技术学院
1.1为什么要提出面向对象程序设计(1/6) 如何在程序中表示日期?(如2012年3月 15日) 第一个方案,一个简单的结构 struct Date { int y; //year int m; //month in year int d; //day of month }; 可以利用Date做什么事呢?
面向对象的C++语言学习课件 东华大学计算机科学与技术学院
1.1为什么要提出面向对象程序设计(2/6)
运行1_1.cpp,依次输入下面数据: 2012 3 15 2012 15 3 -3 13 32 2000 2 29 问题:日期的合法性无法保证
第2个方案,在第1个基础上设计一些辅 助函数,完成一些最常见的操作 1_2.cpp init_day(),初始化,将合理日期值赋给数据 成员 add_day(),增加日期的值
面向对象的C++语言学习课件 东华大学计算机科学与技术学院
1.1为什么要提出面向对象程序设计(3/6)问题:如果定义了Date型变量today,忘了初始 化就使用了它;如果又定义了 Date型变量 tomorrow,没有调用add_day(),而是 直接写了下面代码 tomorrow.y=today.y; tomorrow.m=today.m; tomorrow.d=today.d+1;
我们需要不会被程序员忘记的初始化函 数,需要被忽视的可能性很低的操作。 实现这些目标的基本技术就是成员函数, 即将函数声明于结构体
面向对象的C++语言学习课件 东华大学计算机科学与技术学院
1.1为什么要提出面向对象程序设计(4/6)struct Date { int y; //year int m; //month in year int d; //day of month Date(int y, int m, int d); //check for valid date and initialize void add_day(int n); //increase the Date by n days };
如何解决有人忘记使用add_day(),直接修 改y、m、d呢?那就是保持细节私有性,引入 类
面向对象的C++语言学习课件 东华大学计算机科学与技术学院
1.1为什么要提出面向对象程序设计(5/6)class Date{ public: Date(int y, int m, int d); void add_day(int n); int year(){return y;} int month(){return m;} int day(){return d;} private: int y, m, d; //year, month, day };
面向对象的C++语言学习课件 东华大学计算机科学与技术学院
1.1为什么要提出面向对象程序设计(6/6)
C++中,class与struct的区别class中,成员默认的访问属性为private struct中,成员默认的访问属性为public
软件维护 图形用户界面 如何更加直接地描述客观世界中存在的事 物以及它们之间的相互关系
面向对象的C++语言学习课件 东华大学计算机科学与技术学院
1.2 面向对象语言和方法(1/7)
六十年代末期——Simula 67(面向对 象语言的鼻祖)包含了类和继承的概念 类——描述特性相同或相近的一组对象的 结构和行为 继承——将多个类组织成层次结构,实现 数据和操作的共享
面向对象的C++语言学习课件 东华大学计算机科学与技术学院
1.2 面向对象语言和方法(2/7)
七十年代末八十年代初——Smalltalk (第一个真正的集成开发环境)包含类和继承,更严格的信息隐藏 带有一个巨大的、标准类库 第一个使用MVC(Model-ViewController)模式开发交互式应用软件
面向对象的C++语言学习课件 东华大学计算机科学与技术学院
1.2 面向对象语言和方法(4/7)
Smalltalk使面向对
象方法为人们注目 面向对象语言被分为两大阵营 纯粹的面向对象语言:Smalltalk、Eiffel、 Java 混合型面向对象语言:C++和CLOS
面向对象的C++语言学习课件 东华大学计算机科学与技术学院
1.2 面向对象语言和方法(5/7)
结构化程序设计软件的结构化分析、设计方法 工程化的概念的方法 但无法很好地支持越来越复杂、庞大的系统需求
面向对象方法直接将问题的求解映射到问题本身上 有目的地将系统分解为模块 将问题分解为一系列的实体(对象) 方便设计,可维护性、可扩充性好
面向对象的C++语言学习课件 东华大学计算机科学与技术学院
1.2 面向对象语言和方法(6/7)
简单的例子——图书馆管理系统包含reader(读者)对象、librarian(图书管 理员)对象、bookshelf(书架)对象等 所有的操作由各对象协作完成 借书 reader对象向librarian对象提出借书请求 librarian对象向bookshelf对象提出查书和 取书请求 然后逐步响应,逐步返回,共同完成借书操 作
面向对象的C++语言学习课件 东华大学计算机科学与技术学院
1.2 面向对象语言和方法(7/7)
面向对象方法的一些特性程序设计的重点在数据而不是函数 程序由对象组成 对象之间通过相互协作来完成功能 大多数对象的定义以数据为中心 函数与相关的数据紧密结合 数据可以被隐藏 很容易扩充新的数据和函数
面向对象的C++语言学习课件 东华大学计算机科学与技术学院
1.3 类、对象和消息(1/10)
面向对象程序设计的一般步骤分析实际问题,分辨并抽取其中的类和对 象 设计相应的类,并根据这些类创建各种对 象 协调这些对象完成程序功能
面向对象的C++语言学习课件 东华大学计算机科学与技术学院
1.3 类、对象和消息(2/10)
万物皆对象每个学生、每个班级、每个学校、每个国 家、每棵树、每本书、每部汽车——具体的 实体 “张三”、“李四”都是对象,但“人” 不是 “人”不是具体的实体,是类,是抽象概 念
类是某些对象共同特征的表示类是创建对象的模板,对象是类的实例
面向对象的C++语言学习课件 东华大学计算机科学与技术学院
1.3 类、对象和消息(3/10)
如何区分类和对象——以“人”和“张三”为 例“人”描述了所有人(包括“张三” )都具有的 属性和行为,如有姓名、身高、体重,有鼻子、 眼睛、四肢,能交流、能思维等等 类(“人”)描述的概念是抽象的 “人”的姓名是什么? “人”的身高是什么? 对象(“张三”)是具体的 “张三”的姓名是“张三” “张三”的身高是185CM
…… 此处隐藏:1383字,全部文档内容请下载后查看。喜欢就下载吧 ……相关推荐:
- [小学教育]四年级综合实践活动课《衣物的洗涤》教
- [小学教育]2014半年工作总结怎么写
- [小学教育]20世纪外国文学专题综合试题及答案
- [小学教育]TS_1循环使用催化丙烯环氧化反应研究
- [小学教育]最实用的考勤签到表(上下班签到表)
- [小学教育]气候与生态建筑——以新疆民居为例
- [小学教育]二人以上股东有限责任公司章程参考样本
- [小学教育]2014届第一轮复习资料4.1,3美好生活的
- [小学教育]土方开挖、降水方案
- [小学教育]手绘儿童绘本《秋天的图画》(蜡笔)
- [小学教育]2002级硕士研究生卫生统计学考试试题
- [小学教育]环保装备重点发展目录
- [小学教育]金蝶K3合并报表培训教材
- [小学教育]岩浆岩试题及参考答案
- [小学教育]知之深爱之切学习心得
- [小学教育]第十二章 蛋白质的生物合成
- [小学教育]Chapter 2-3 Solid structure and basi
- [小学教育]市政道路雨季专项施工方案
- [小学教育]中国海洋大学2012-2013学年第二学期天
- [小学教育]教育心理学第3章-学习迁移
- 浅谈深化国企改革中加强党管企业
- 2006年中国病理生理学会学术活动安排
- 设计投标工作大纲
- 基于ARP的网络攻击与防御
- 2016届湖北省七市(州)教科研协作体高三
- Google_学术搜索及其检索技巧
- 2019-2020学年七年级地理下册6.3美洲教
- 城市道路可研报告
- 【名师指津】2012高考英语 写作基础技
- 6级知识点培训北京师范大学《幼儿智趣
- 注册会计师会计知识点:金融资产
- 新安装 500 kV 变压器介损分析与判断
- PS2模拟器PCSX2设置及使用教程.
- 医院药事管理与药剂科管理组织机构
- {PPT背景素材}丹巴的醉人美景,免费,一
- NAS网络存储应用解决方案
- 青海省西宁市六年级上学期数学期末考试
- 测量管理体系手册依据ISO10012:2003
- 洞子小学培养骨干教师工作计划
- 浅谈《牛津初中英语》的教材特点及教学




