203-9-1计算机程序计-类和对象(一).ppt_第1页
203-9-1计算机程序计-类和对象(一).ppt_第2页
203-9-1计算机程序计-类和对象(一).ppt_第3页
203-9-1计算机程序计-类和对象(一).ppt_第4页
203-9-1计算机程序计-类和对象(一).ppt_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机程序设计,顾刚计算机教学实验中心,本章主要内容,对象和类概述类与对象的定义和声明成员函数对象的访问与存储,实体和对象,实体:指客观世界存在的某个事物西安交大、一只羊、一篇文章、机自64班高正稳、教学主楼、姚明的汽车每个实体有其特征(属性)和操作(方法)电视机属性:尺寸、彩色、频道、液晶电视机操作:选频、调色、调音量高正稳的属性和操作?有些实体只有属性而无操作,如兵马俑等操作和属性密切相关、相互依赖对象=实体,类的概念,类:具有相同属性和操作的对象集合所有红旗轿车轿车类所有罗西尼手表手表类所有交大学生交大学生类整数集合整数类对象是类的一个实例或个体或元素,类的属性和操作,类是具有相同共性的实体集合类的属性和操作也就是实体的属性和操作学生类的属性和操作属性:姓名、性别、年龄、学号、成绩、身高操作:上课、跑步、求平均成绩、求最好成绩轿车类的属性和操作属性:型号、颜色、价格、出厂日期、轮子直径操作:运动、鸣笛、维修、加油、保险整数类的属性和操作属性:N位十进制整数(或4个字节)操作:加法+、减法-、乘法*、除法,对象的描述,对象指客观世界中的一个实体描述某个对象就是描述它的属性和操作对象=属性+操作对象=数据+函数将数据和函数当作一个统一体类是具有相同属性和操作的对象集合结构体与类的区别?先定义类的属性和操作,再声明具体对象,两种程序设计思想,面向过程的程序设计(StructureProgramming)以功能为中心,采用函数来描述操作面向对象程序设计(ObjectOrientedProgramming)以数据为中心,采用对象来描述内部属性和操作方法面向过程程序设计是将数据与函数分离,数据一旦发生改变,函数也要相应改变,如排序函数面向对象程序设计是将数据和函数当作一个统一体,采用软件对象模拟客观世界中实际对象,OOP的特征,抽象:数据抽象+代码抽象如电视机、学生封装:操作和数据封藏起来,组成统一体继承:将对象(实体)之间的差异通过继承性加以描述动物人、大象、鸟学生、工、农、兵大学生、中学生多态性:指相同语法结构(数据或操作)代表多种功能如+、*、/,OOP的优点,开发时间短,效率高,可靠性高重用,共享,可维护性,精简适合于大型程序长时间的团队开发工作,思考为什么要引入?,为什么要引入数组?太多的变量(全班同学的C+成绩)为什么要引入函数?结构化程序设计、代码重用为什么要引入指针?加快速度、参数传递、动态分配内存为什么要引入结构体?复合数据结构,不同数据类型的聚合在一起,为什么要引入类,采用人们认识客观世界的自然方式去模拟客观世界中对象提高开发程序的效率和可靠性数据与代码的整合(以便更高级的代码复用),类的定义,classprivate:/私有成员;;public:/公有成员;;protected:/保护成员;;,定义猫类,classCatprivate:/数据成员一般为私有成员charName9;charSex;intAge;public:/函数成员一般为公有成员voidRegister(char*name,intage,charSex);voidSpeak();voidShow_Cat();char*Getname();intGetage();intGetsex();,成员函数的定义,成员函数定义分两种形式:类内与类外定义在类体内直接编写函数体在类体外编写成员函数的一般形式::(),内联函数,如果成员函数在类体中直接给出完整定义,则称内联函数数,classCatprivate:/数据成员一般为私有成员charName9;charSex;intAge;public:/函数成员一般为公有成员voidRegister(char*name,intage,charSex);voidSpeak();voidShow_Cat();char*Getname();intGetage();intGetsex();,returnAge;,类外定义成员函数,voidCat:Resgister(char*name,intage,charsex)strcpy(Name,name);Age=age;Sex=sex;voidCat:ShowMe()coutNametAgetSexendl;char*Cat:Getname()returnName;,对象的声明与引用,声明对象的一般形式(类的实例化):,例如:CatCara,Miqi;对类成员的访问,采用.运算符例如:Cara.ShowMe();可以直接进行对象赋值例如:Miqi=Cara;,对象的引用注意,成员函数直接访问同类中的数据成员(公有和私有)类的对象访问其数据成员或成员函数需使用运算符“”禁止直接访问一个对象中的私有成员同类对象之间可以整体赋值对象用作函数的参数时属于赋值调用;函数可以返回一个对象。,公有成员:外界能够直接访问,起着接口的作用私有成员:外界不能直接访问,使得成员被隐藏起来一个实体的属性往往被定义为私有成员,方法被定义为公有成员通过类中提供的函数对类中的数据进行操作,达到数据的安全性类名、各成员名称要符合标识符规范成员函数可在类中定义,也可在类外定义各成员的访问权限应根据实际需要确定书写顺序任意,有时public放在前边,有时写几个public或几个private类中的数据成员不能使用表达式进行初始化,类定义声明使用小结,例:学生信息输入输出,创建一个项目student创建一个定义学生类的头文件文件新建C/C+HeaderFile输入文件名创建一个学生信息输入输出的CPP源文件文件新建C+SourceFile输入文件名,#include/建立头文件student.husingnamespacestd;classStudent/定义student类private:charName20;charSex;intAge;public:voidRegister(char*name,intage,charsex);voidShowMe();/Student类成员函数的定义voidStudent:Register(char*name,intage,charsex)strcpy(Name,name);Age=age;Sex=(sex=m?m:f);voidStudent:ShowMe()coutNametAgetSexagesex;Student1.Register(name,age,sex);coutStudent1:t;Student1.ShowMe();Student1.Register(Zhang3,19,m);coutStudent1:t;Student1.ShowMe();Student2=Student1;/对象之间的赋值cout=1,对象的存储,若一个类声明了五个对象,存储空间如何分配?是否对象中的数据和函数成员都占用存储空间?C+程序的存储分配结构图?数据成员分配存储空间函数成员共用一个存储空间在例9-6中增加下面语句:coutsizeof(date1)endl;coutsizeof(Date)endl;输出结果都是12,例题点类和圆类的定义,客观存在基本图形:点和圆点的属性和方法属性:点坐标,X和Y轴上的整数值方法:设置坐标、打印坐标、得到坐标圆的属性和方法属性:点坐标和半径方法:设置初值、计算面积、输出圆属性、得到圆属性,/point.h头文件,定义类Point#ifndefPOINT_H#definePOINT_H#includeusingnamespacestd;classPointintx,y;/点的x和y坐标public:voidSetPoint(int,int);/设置坐标intGetX()returnx;/取x坐标intGetY()returny;/取y坐标voidPrint();/输出点的坐标;#endif,/Point.cpp源文件,定义Point类的成员函数#include#include“point.h”usingnamespacestd;voidPoint:SetPoint(inta,intb)x=a;y=b;voidPoint:Print()coutx,y=0?r:0);voidCircle:SetCenter(Pointp)Center=p;doubleCircle:GetRadius()returnradius;PointCircle:GetCenter()returnCenter;doubleCircle:Area()return3.14159*radius*radius;voidCircle:Print()coutCenter=;Center.Print();cout;Radius=radiusendl;,/Example.cpp#include#includePoint.h#include“Circle.h”usingnamespacestd;intmain()Pointp,center;p.SetPoint(30,50);center.SetPoint(120,80);Circlec;c.SetCenter(center);c.SetRadius(10.0);coutPointp:;p.Print();coutendl;coutCirclec:;c.Print();coutThecenterofcirclec:;c.GetCenter().Print();coutnTheareaofcirclec:c.Area()endl;return0;,习题,实验作业1、第9章第1题2、第9章第2题3、第9章第3题4、(必做题)设计定义一个三角形类,成员函数应有输入三角形初始数据函数、求三角形面积函数、输出面积函数。并编写主函数加以测试。5、(必做题)定义一个二元一次方程组类,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论