网络课件-板书1

上传人:仙*** 文档编号:253048160 上传时间:2024-11-28 格式:PPT 页数:42 大小:243KB
返回 下载 相关 举报
网络课件-板书1_第1页
第1页 / 共42页
网络课件-板书1_第2页
第2页 / 共42页
网络课件-板书1_第3页
第3页 / 共42页
点击查看更多>>
资源描述
面向对象程序设计,面向对象程序设计,C+,程序设计语言,主讲:陈泽琳,学时安排:,上课学时:24,上机学时:16,参考资料:,(美),H.M.,Deitel,等著,薛万鹏等译,“,C+,程序设计教程”,郑莉等编著,“,C+,语言程序设计”,钱能主编,“,C+,程序设计教程”,刘路放编著,“,Visual C+,与面向对象程序设计教程”,杜建成等编著,“,C+,简明教程”,.,上机时间:,一、第二周 星期二下午2:30-5:30,二、第五周 星期三晚上6:30-9:30,三、第十二周 星期五晚上6:30-9:30 一班,第十三周 星期二下午2:30-5:30 二班,四、第十四周 星期五晚上6:30-9:30 一班,第十五周 星期二下午2:30-5:30 二班,课程学习的目标:,学习,C+,程序设计语言,,掌握面向对象程序设计方法。,课程学习的要求:,预习,通过例子了解概念,编程上机实践。,课程大纲:,1.类(,Class),2.,构造函数和析构函数,(,Constructor&,Destructor,),3.,静态成员和友元(,Static Member&Friends),4.,继承与多态性(,Inheritance&Polymorphism),5.,运算符重载(,Operator Overloading),6.I/O,流与文件(,I/O Stream&File),7.,模板(,Template)、,异常处理,8.,MFC,类库及程序框架,9.面向对象程序设计(,Object-oriented programming),C,程序复习,(函数、参数、指针、引用、执行过程与程序),讲课内容的一点说明:,书的内容写的很细,讲课时先讲主要内容,通过例子理解,在此过程中主要学习编程序,最后再补充,C+,的细节规则。,课件中的约定:,基础内容,重点内容*,难点内容*,需要注意的内容#,应多练习的内容#,1.类(,class),1.1,类的概念,面向对象程序设计,问题:(例1-1),编写一个时钟的程序,程序可以设置时、分、秒,,可以判断设置的时间是否合理(时:0-23,分:0-59,,秒:0-59),显示时间。,什么是类?,类是一种用户定义的数据类型,C,语言程序(结构化程序设计方法):,#,include,struct,Time ,int,hour;,int,minute;,int,second;,;,struct,Time,standard_time;,main(),set_time(18,20,30);,show_time();,void set_time(,int,h,int,m,int,s),standard_time.hour=(h=0,standard_time.minute=(m=0,standard_time.second=(s=0,void show_time(),cout,standard_time.hour:standard_time.minute:standard_time.second,endl,;,C+,语言程序(面向对象程序设计),#,include,class,Time ,private:,int,hour;,int,minute;,int,second;,public:,void set_time(,int,int,int,);,void show_time();,;,void,Time:,set_time(,int,h,int,m,int,s),hour=(h=0,minute=(m=0,second=(s=0,void,Time:,show_time(),cout,hour:minute:second,endl,;,Time,standard_time;,main(),standard_time.,set_time(18,20,30);,standard_time.,show_time();,看上去只是写法不同,实际上在面向对象程序设计中,,class,set_time(),show_time(),是一个整体,是可以独立于,main(),主函数,也可以看成是对象的描述(注意这里的对象与后面要讲的对象一词,意思不同,以后会详细介绍),即面向对象。,而结构化程序设计中,只能将问题划分为一个个函数模块,哪些,函数模块可以描述一个子问题或一个对象,程序中无法表示。,因此以上两个程序是有本质区别的,面向对象程序设计可以将描述,完整的子问题提供给他人,同时还能保护自己的程序不被他人乱改,多个面向对象子程序还可以象搭积木一样组合成大的面向对象程序,程序设计可以象生产汽车标准零件一样形成大规模生产,而这些在,结构化程序设计中都很难做到。,为什么用类,:可以实现面向对象的程序设计,即代码可以重用并受到保护,类是实现面向对象程序设计的基本工具,下面我们一步步地介绍关于类的定义、用类进行,面向对象程序设计的方法,class,类名,数据成员(,data members);,.,成员函数(,member functions);,;,类的定义:,class,类名,public:,公有段成员;,protected:,保护段成员;,private:,私有段成员;,;,面向对象程序设计,说明:,1.类名的第一个字母一般大写;,2.无论是数据成员,还是成员函数,都可用三个访问控制,关键字说明:,public、protected、private;,3.,默认情况是,private;,4.,说明为,private,的数据成员,其他对象不可访问的;,5.类是一种类型的定义,不分配存储空间;,再看一个例子:(例1-2),描述人的信息:姓名、出生日、籍贯等,其成员函数有:设置姓名、出生日、籍贯等;,显示姓名、出生日、籍贯等,如要增加人的其他信息,学历、党派等,可以在类中,增加这些数据成员;还可以增加处理,这些数据成员的成员函数,class Human ,public:,Human();,display();,private:,char name10;,struct,int,year;,int,month;,int,date;,birthday;,char history20;,;,有成员函数和无成员函数;,成员的隐蔽和成员的公开;,类与结构的区别:,如何定义类成员,:数据成员;成员函数的声明,声明(或说明),定义,说明:,1.所有类定义中声明的成员函数都要定义其成员函数的实现;,2.在类中定义成员函数,默认为内联函数;(小函数,执行效率高);,3.在类之外定义成员函数,函数名必须为,类名:成员函数名(),4.非成员函数的全称为,:函数名,(不会引起出错时可省略:),1.2 类成员的定义,:称为作用域运算符,例1-3,(在类的内部定义成员函数),#,include,class Time ,public:,void set_time(,int,h,int,m,int,s),hour=(h=0,minute=(m=0,second=(s=0,void show_time(),cout,hour:minute:second,endl,;,protected:,int,hour;,int,minute;,int,second;,;,(在类的外部定义成员函数),#,include,class Time ,public:,void set_time(,int,int,int,);,void show_time();,protected:,int,hour;,int,minute;,int,second;,;,void,Time:,set_time(,int,h,int,m,int,s),hour=(h=0,minute=(m=0,second=(s=0,void,Time:,show_time(),cout,hour:minute:second,endl,;,类成员的保护,:(即对象成员的访问限制),类成员为,public,则任何函数可以访问,提供给外部的接口;,为,protected,则自己类的成员函数,和派生类的成员函数可以访问;,为,private,则只能被自己类的成员函数访问。,注:访问包括赋值和引用,a.birthday.year=1998;,cout,a.name,成员访问说明符:,public:、protected:、private:,除了全局变量赋初值,C,及,C+,的变量访问,都是在函数中完成的,类的数据成员的访问也是在成员函数或,一般函数中完成的,(一般函数只能访问,public,数据),函数中访问数据(类的数据成员),函数调用函数,例1-4,class Test,public:,void,putpuba,(,int,);,int puba,;,protected:,void,putproa,(,int,);,int proa,;,private:,void,putpria,(,int,);,int pria,;,;,void Test:,putpuba,(,int,a),puba,=a;,proa,=a;,pria,=a;,cout,in,putpuba,(),endl,;,cout,puba,is ,puba,;,cout,proa,is ,proa,;,cout,pria,is ,pria,;,endl,;,/,类成员函数可以访问自己的保护成员和私有成员,putproa,(a+1);,putpria,(a+2);,cout,end of,putpuba,(),endl,;,void Test:,putproa,(,int,a),puba,=a;,proa,=a;,pria,=a;,cout,in,putproa,(),endl,;,cout,puba,is ,puba,;,cout,proa,is ,proa,;,cout,pria,is ,pria,;,endl,;,/,访问自己的私有成员,putpria,(a+3);,cout,end of,putproa,(),endl,;,void Test:,putpria,(,int,a),puba,=a;,proa,=a;,pria,=a;,cout,in,putpria,(),endl,;,cout,puba,is ,puba,;,cout,proa,is ,proa,;,cout,pria,is ,pria,;,endl,;,/,访问自己的保护成员,putproa,(),中的,putpria,(),与下一函数调用,/只能执行一个,否则循环调用,/,putproa,(a+1);,cout,end of,putpria,(),endl,;,void main(),int,a=1,b=2,c=3;,Test,obj,;,obj,.,puba,=10;,cout,in main(),puba,=,obj,.,puba,endl,;,/,obj,.,proa,=20;error:,proa,is protected member,/,obj,.,pria,=30;error:,pria,is private member,obj,.,putpuba,(a);,/,obj,.,putproa,(b);error:,putproa,()is protected member,/,obj,.,putpria,(c);error:,putpria,()is private member,cout,end,endl,;,类定义的,public,段是类的对外接口,可以被外部访问,,而,protected,可以被派生类访问。,若类需修改,只需修改类的内部程序和保护或私有数据,,而类的对外接口不变,即公共成员函数的功能、名字、,参数不变,则不需改外部应用程序。,类成员保护的好处:,由此可以建立搭建应用程序的基础块,这些块,是通用的和安全的,例子见书,p250-251,问题:,类中定义的,public,数据成员与全局变量的区别?,不同之处:,若类的对象是全局的,则访问都是整个程序,但类的,pub
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!