- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
类和对象1
第7单元 类与对象;类和对象;结构化程序设计的特点:
是一种自上而下、逐步细化的模块化程序设计方法。
算法 + 数据结构 = 程序
是一种面向过程程序设计方法,即一个程序是由多个过程(在C++中为函数)模块组成,过程之间通过函数参数和全局变量进行相互联系。
;
代码重用性不高:以过程为中心设计新系统,除了一些标准函数,大部分代码都必须重新编写。
由于软、硬件技术的不断发展和用户需求的变化,按照功能划分设计的系统模块容易发生变化,使得开发出来的模块的可维护性欠佳。
面向过程模式将数据与过程分离,若对某一数据结构做了修改,所有处理数据的过程都必须重新修订,这样就增加了很多的编程工作量。;什么是对象:
现实世界是由各种各样的事物组成,包括真实的事物和抽象的事物。例如,人、动物、汽车(真实的事物)和程序、直线(抽象的事物)等。
每一类事物都有自己特定的属性(如大小、形状、重量等)和行为(如生长、行走、转弯、运算等),人们通过研究事物的属性和行为而认识事物。
在计算机科学中将这些现实世界中的事物称之为对象。对象是包含现实世界中事物特征的抽象实体,它反映了系统为之保存信息和与之交互的方法。
在程序设计领域,可以用如下公式表示:
对象 = 数据 + 作用于这些数据上的操作;为了描述属性和行为相同的一类对象,引入了类(class)的概念。
类是具有相同数据结构(属性)和相同操作功能(行为)的对象的集合,它规定了这些对象的公共属性和行为方法。
对象是类的一个实例,例如,汽车是一个类,而行驶在公路上的一辆汽车则是一个对象。
对象和类的关系相当于程序设计语言中变量和变量类型的关系。;OOP围绕现实世界的概念来组织模块,采用对象描述问题空间的实体,用程序代码模拟现实世界中的对象,使程序设计过程更自然、更直观。
OOP模拟了对象之间的通信。就象人们之间互通信息一样,对象之间也可以通过消息进行通信。这样,我们不必知道一个对象是怎样实现其行为的,只需通过对象提供的接口进行通信并使用对象所具有的行为功能。;面向对象程序设计方法的基本特征;为了支持面向对象程序设计,C++在C语言结构(struct)数据类型的基础上引入了类这种抽象数据类型。
C++面向对象编程实质上就是面向类编程。
易于编写大型复杂程序,其代码重用性比C中采用函数更高。
传统C程序员把编程重点放在函数的编写上,而C++程序员把重点放在类的定义和实现上。
;C++类将对象的属性抽象为数据成员,将对象的行为抽象为成员函数,并对它们进行封装。数据成员又称成员变量,成员函数又称为方法。
C++类在形式上类似于C语言中用户自定义的结构类型,但定义类时规定了成员的访问控制权限。对象只能访问所属类的公有成员,而类的私有成员只能在类的成员函数中被访问。
;类的声明形式;注意:在C ++语言中,结构体struct与类class有很多相同之处,但也有差异:
关键字:struct→class。
结构成员默认为public,而类成员默认为private。;公有类型成员;私有类型成员;保护类型;类的成员;void Clock :: SetTime(int NewH, int NewM, int NewS)
{
Hour=NewH;
Minute=NewM;
Second=NewS;
}
void Clock :: ShowTime( )
{
coutHour:Minute:Second;
};成员数据;;成员函数;;内联成员函数;内联成员函数举例(一);内联成员函数举例(二);inline void Point:: Init(int initX,int initY)
{
X=initX;
Y=initY;
}
inline int Point::GetX( )
{
return X;
}
inline int Point::GetY( )
{
return Y;
};对象;类中成员的访问方式;例子 类的应用举例;构造函数;构造函数举例;构造函数的实现:
Clock::Clock(int NewH, int NewM, int NewS)
{
Hour=H;
Minute=M;
Second=S;
}
建立对象时构造函数的作用:
void main( )
{
Clock c (0,0,0); //隐含调用构造函数,将初始值作为实参。
c.ShowTime( );
};几点说明:;(3)构造函数还具有一些特殊的性质:
构造函数的名字必须与它所属的
文档评论(0)