版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第7章 面向对象程序设计方法和思想,*学校高级班学生成绩表,如何用计算机程序实现上述表格的管理?,数组的解决方法,int studentId30; /* 最多可以管理30个学生, 每个学生的学号用数组的下标表示*/ charstudentName1030; char*/ int scoreMusic30; /*音乐课的成绩*/,数组的解决方法,int studentId30 = 1,2,3,4,5,6; charstudentName1030 = “乔峰”,“段誉”,“虚竹”, “张无忌”,“小师妹”,“黄蓉; charstudentSex230 = 男,男,女,女; int timeOfEn
2、ter30 = 1999,1999,1999,1999; int scoreComputer30 = 90,78,89,78; int scoreEnglish30 = 83,92,72,95; int scoreMath30 = 72,88,98,87; int scoreMusic30 = 82,78,66,90;,数组的解决方法,数组方式存在的问题 (1) 分配内存不集中,寻址效率不高 (2) 对数组进行赋初值时,容易发生错位 (3) 结构显得比较零散,不容易管理,结构的表示方法,在成绩管理系统中,每个人均有各门课程的成绩,同时还有名字、学号等信息,因此在系统中,每位同学应作为一个整体,
3、这就是面向对象的启蒙看法: 面向对象,是为了让我们把程序写得更“自然”。越是支持面向对象的编程语言,我们就越能以接近人类自然逻辑的思路来设计程序;而越不支持面向对象的编程语言,也许它初看起来似乎很浅显易用,但当用它来解决实际问题时,程序员就不得不受限于这门语言特有的解决问题的思路,结构的表示方法,把同属于一个整体的“数据”,归成一个新的类型去考虑,而不是分割成每一部分。 “结构”提供一种能力,允许程序员把多个数据类型,归属成一个完整的,新的数据类型,struct studentGrade int studentId; /学号 charstudentName10;/姓名 charstudentS
4、ex2;/性别 int timeOfEnter; /入学时间 int scoreComputer;/计算机原理课的成绩*/ int scoreEnglish; /英语课的成绩*/ int scoreMath; /数学课的成绩*/ int scoreMusic; /音乐课的成绩*/ ;,结构的表示方法,假设还想掌握 *学生(结构中那个表格)的练武情况,这我们需要定义函数:,引入面向对象的思想,练武(*人,*功),如果需要调用练功函数,则: 练武(张无忌,九阳神功),这种编程方式自然吗?有没有自然一点的写法?比如张无忌.练功(九阳神功),练武当然还有武功秘籍呢,所以:,引入面向对象的思想,stru
5、ct studentGrade int studentId; /学号 charstudentName10;/姓名 charstudentSex2;/性别 int timeOfEnter; /入学时间 int scoreComputer;/计算机原理课的成绩*/ int scoreEnglish; /英语课的成绩*/ int scoreMath; /数学课的成绩*/ int scoreMusic; /音乐课的成绩*/ char MiJi1024;/看家本领的武功秘籍 ;,再来看练武的那个函数,修改成:,引入面向对象的思想,练武(*人,*功,*秘籍),练武过程是根据武功秘籍来的,但*秘籍改变了,练
6、武的函数却不知道,结果是什么呢? 张无忌练九阳神功的时候,周芷若将这个秘籍换成了九阴真经的秘籍,结果可就麻烦了,由于数据和函数分离,修改数据或者修改函数均可能引起程序员错误?有没有办法有的数据只能通过某个东东来访问,其他未途径一律无法访问呢?,某一天,该班插班进来一个人,自称是张无忌传人,得到了无忌的真传,并且还有很对师傅不会的他也会. 于是我们又要修改函数.再招收到了他的传人的传人第N代传人,引入面向对象的思想,有没有可能在程序中,张无忌有的东西,他的传人也自动会用呢?,结构化编程的缺点(个人观点,无统一的表述): 写法不自然,不符合高级语言的特点 无法强制进行初始化 数据和操作数据的函数分
7、离,修改数据或者修改函数容易导致错误 软件无法方便地重用.,引入面向对象的思想,于是引入了面向对象的思想,但结构化方法并没有被抛弃.,面向对象的基本概念 对象 现实中存在的一个事物,可以是实际存在的也可以是无形的 类 对象的归类,描述这些对象的共同特征,,面向对象的基本概念,武林学校中的学生都是对象 这些学生有共同的特点,要学英语、学数学.还要练习武功,对象和类的概念解析,面向对象的基本概念,类是对象的抽象,对象是类的实例,对象实例:旭日阳刚、西单女孩、凤凰组合.,这些对象有什么共同的特点:,草根明星,概念定义好像很纠结,究竟是先有类呢还是先有对象?,先有对象还是先有类,面向对象的基本概念,系
8、统进行分析和设计时,先分析对象,看它们有哪些共同的特征,将这些共同的特征抽象为类- 泛化,编写程序时,先定义类,将类作为一种自定义的数据类型,然后产生对象,类的定义方式,面向对象的基本概念,class studentGrade int studentId; /学号 . int scoreMusic; /音乐课的成绩*/ ;,Struct关键字也可以用来定义类,但是其中成员的访问属性全部是public,类中的成员可以是变量(属性),也可以是函数(方法),封装(信息隐藏) 将数据和操作这些数据的函数”包装”在一起,并且可以设置这些数据的访问权限。,面向对象的基石,class studentGrad
9、e int studentId; /学号 . int scoreMusic; /音乐课的成绩*/ private: char MiJi1024;/看家本领的武功秘籍 public: 练武(MiJi); ;,设置只有通过练武这个函数才能访问武功秘籍,其他途径一概拒绝,继承,面向对象的基石,基因:老爸有什么样的基因,儿子一定有什么样的基因。*继承了父亲的*天赋,打游戏:魔兽世界。版本升级时向增加一种无敌魔兽, 拥有现有魔兽的全部功能,并且会飞 在程序设计时就可以使用继承,继承(泛化 IS-A):B继承自A,则B自动拥有A的全部东东(有些特殊的内容出外,比如构造函数.) ,并且B可以修改继承自A的东
10、东.,多态,面向对象的基石,class student private: char MiJi1024;/看家本领的武功秘籍 public: 练武(MiJi); 绝招(); ; 不同学生的绝招不同 出绝招(student * p) p-绝招() /,(1) *.出绝招(张无忌),(2) *.出绝招(赵敏),九阳神功,搞定张无忌,多态,面向对象的基石,polymorphism means that some code or operations or objects behave differently in different contexts(). For example, the + (plus) operator in C+: 4 + 5 - integer addition 3.1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年无锡工商银行无锡笔试及答案
- 2026年虚拟现实教育内容创新行业报告
- 政治试卷(下班HEN-C1)答案河南省金太阳部分学校2026届高三年级11月大联考暨期中联考(下标HEN-C1)(1.13-11.14)
- 2026年自动驾驶出租车队运营报告
- 2026年光伏发电行业市场前景报告及技术创新报告
- 2026年法律文书智能解析试题集案件关键信息提取
- 电石厂安全生产考核制度
- 车间管理与考核制度范本
- 山大留学生陪伴考核制度
- 2025年海丰县幼儿园教师招教考试备考题库带答案解析(必刷)
- 2026年高考英语作文预测模拟题集及答案
- 2026年皖西卫生职业学院高职单招职业适应性测试备考题库含答案解析
- 儿童变应性鼻炎诊断和治疗指南(2025年,修订版)
- 2026年山东交通职业学院单招综合素质考试参考题库带答案解析
- 6.0《中国的地理差异》教案-人教版地理八年级下册
- 2025年湖南生物机电职业技术学院单招职业适应性考试模拟测试卷附答案
- (2025年)中式烹调师(初级)模拟题及参考答案
- 2025中国交响乐团面向社会招聘备考试题附答案解析
- 2025年广东省第一次普通高中学业水平合格性考试(春季高考)数学试题(含答案详解)
- 2026年辽宁职业学院单招职业技能考试题库及完整答案详解1套
- 中国石化联锁管理制度
评论
0/150
提交评论