- 1、本文档共65页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C面向对程序设计第2章
第二章 类和对象 ;砸星漾嫩谊笆歼栈南歹宰众铆尧晰冒港浓互诽驾弦揩化斥趋较犊撇遭澄吟C++面向对程序设计第2章C++面向对程序设计第2章;2.1 ?面向对象程序设计方法概述
1 对象
2 面向过程与面向对象的程序组成
;按钮对象:
按钮的内容、大小,按钮的字体、图案等等
针对按钮的各种操作,创建、单击、双击、拖动等;对象的两个要素:
属性(attribute),即静态特征
行为(behavior),即动态特征--能根据外界给的信息进行相应的操作。
对象是由一组属性和一组行为构成的。 ;我们可以对一个对象进行封装处理,把它的一部分属性和功能对外界屏蔽,也就是说从外界是看不到的、甚至是不可知的。
使用对象的人完全可以不必知道对象内部的具体细节,只需了解其外部功能即可自如地操作对象。 ;传统的面向过程程序设计:
是围绕功能进行的,用一个函数实现一个功能。
所有的数据都是公用的,一个函数可以使用任何一组数据,而一组数据又能被多个函数所使用。
程序设计者必须考虑每一个细节,什么时候对什么数据进行操作 。
面向过程的程序∶
程序 = 算法+数据结构;OOP程序设计者的任务包括两个方面:
1 设计所需的各种类和对象,即决定把哪些数据和操作封装在一起;
2 考虑怎样向有关对象发送消息,以完成所需的任务。
各个对象的操作完成了,整体任务也就完成了。
因此人们设想把相关的数据和操作放在一起,形成一个整体,与外界相对分隔。这就是面向对象的程序设计中的对象。 ;面向对象的程序组成:
对象 = 算法 + 数据结构
程序=(对象+对象+对象+……)+ 消息
消息的作用就是对对象的控制。
程序设计的关键是设计好每一个对象以及确定向这些对象发出的命令,使各对象完成相应的操作。 ;2.2 类的定义;每一个实体都是对象。有一些对象是具有相同的 结构和特性的。
每个对象都属于一个特定的类型。
在C++中对象的类型称为类(class)。类代表了某一批对象的共性和特征。
类是对象的抽象,而对象是类的具体实例(instance)。 ;类是一种复杂的数据类型,它是将不同类型的数据和与这些数据相关的运算封装在一起的 集合体。
类将一些数据及与数据相关的函数封装在一起,使类中的数据得到很好的“保护”。在大型程序中不会被随意修改。;类的定义格式:
class 类名
{ private :
成员数据;
成员函数;
public :
成员数据;
成员函数;
protected:
成员数据;
成员函数;
};;用关键字priviate限定的成员称为私有成员
对私有成员限定在该类的内部使用,即只允许该类中的成员函数使用私有的成员数据。
对于私有的成员函数,只能被该类内的成员函数调用;类就相当于私有成员的作用域。 ;用关键字public限定的成员称为公有成员
公有成员的数据或函数不受类的限制,可以在类内或类外自由使用
对类而言是透明的。;而用关键字protected所限定的成员称为保护成员,只允许在类内及该类的派生类中使用保护的数据或函数。即保护成员的作用域是该类及该类的派生类。;;每一个限制词(private等)在类体中可使用多次。
一旦使用了限制词,该限制词一直有效,直到下一个限制词开始为止。
如果未加说明,类中成员默认的访问权限是private,即私有的。;class Student
{ char Name[20];
float Math;
float Chiese;
public :
float average;
void SetName(char *name);
void SetMath(float math);
void SetChinese(float ch);
float GetAverage(void);
};;class A
{ float x, y;
public:
void Setxy(float a,float b)
{ x=a; y=b; }
void Print(void)
{ coutx‘\t’yendl; }
}; ;class A
{ float x, y;
public:
void Setxy(float a,float b);
void Print(void);
};
void A::Setxy(float a,float b)
{ x=a; y=b; }
void A::Print(void)
{
文档评论(0)