第九讲 面向对象程序设计基础.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
本讲主要内容: 面向对象的基本思想 类和对象概念及举例 属性和方法 类成员的访问控制 构造函数和析构函数 封装、继承、多态 面向对象技术的由来 面向过程的设计方法(结构化程序设计方法)的不足: 功能和数据分离,不符合人们对事物的认识,难以保证数据和功能的相容性. 基于模块的设计方法,使软件修改困难 自顶向下的设计方法,限制了软件的可重用性,降低了开发效率,维护困难. 面向对象设计方法 把数据和对数据的操作作为一个相互依赖不可分割的整体,符合人们的思维习惯. 采用数据抽象和信息隐蔽技术,使问题简单化. 有助于控制软件的复杂性,提高软件的生产效率. 其他程序设计方法 面向过程的设计方法:在科学计算中仍有其优势. 面向逻辑的设计方法:人工智能 面向规则的设计方法:专家系统 类 类是对象的符号表示形式。类描述组成对象的属性、方法和事件等。 类通常同时包含定义和实现,但它也可以包含没有实现的一个或多个成员。 类的概念类似于面向过程程序开发中的数据类型(结构)概念。 C++类声明 class Rectangle { private: int a,b; public: int Square() { return a*b; } int Girth() { return 2*(a+b); } void Assign(int x,int y) { a=x; b=y; } }; 类Rectangle包含了长方形的静态特征长和宽,类似结构,还可以包含更多的属性,类型可各不相同。 类Rectangle也包含了长方形的行为特征(成员函数),周长和面积的计算。 类中的方法可以在类外定义,如: 对象object 类描述对象的“结构”,而对象则是类的可用“实例”。每个实例都是其类的一个精确而又不同的副本。所以创建对象的动作就称为“实例化”。 一个类也可以用于根据需要创建多个对象。类也可以通过封装来控制用户对对象项的访问。 对象的概念类似面向过程程序设计中的变量概念。 举例:对上例中定义的类的应用 void main() { Rectangle aRectangle; //声明了一个名为aRectangle对象 aRectangle.Assign(2,2); //为该对象的私有成员a,b赋值,即 //aRectangle.a=2;aRectangle.b=2 coutaRectangle.Square()endl; //调用该对象Square方法,输出该对象 //的面积 } 类是一个抽象概念,而对象是具体的实例。类就如同人的抽象概念,人都具有共同的外部特征和行为特征,就象类的属性和方法,而对一个具体的人,就是一个人的实例,他自然具有人都具有共同的外部特征和行为特征。 private和public成员 class Rectangle { public: int a,b; int Square() { return a*b; } int Girth() { return 2*(a+b); } }; 下面是使用指向对象的指针创建并使用对象: void main() { Rectangle *r; r=new Rectangle(); r-a=2; r-b=2; coutr-Square(); } 对指针,必须先创建对象,后使用该对象。 对指针指向对象成员的访问类似结构指针,用符号-。 建立一个三角型类(TriAngle): 字段:三条边长 方法: 计算面积Area 计算周长Girth 计算三个内角InteralAngle 判断三角型类型(是等腰BothSame,是等边AllSame还是直角RightTriAngle三角形 是钝角obtuse三角形还是锐角sharp三角形。 面向对象的特征之一:封装 “封装”是包含和控制访问一组关联项的能力。类提供一个最通用的方式来封装项。封装使您可以将 类中的数据和过程作为一个单元来使用。您可以同时处理多个对象而不会混淆,因为每个对象都由该类的一个唯一实例来表示。 封装还使您可以控制如何使用数据和过程。可以使用访问修饰符(如 Private 或 Protected)来防止外部过程执行类方法或读取与修改属性和字段中的数据。 面向对象的特征之一:封装 应当将类的内部详细信息声明为 Private 以防止在类外使用它们,此技术称为“数据隐藏”。 隐藏类的实现详细信息可以防止这些信息被以不希望的方式使用。 例:关于封装 上例中可以在Rectangle中定义 public int a,b;则在Main中可以用R.a和R.b访,无法通过类内部机制对a,b的合法性控制。

文档评论(0)

yyh892289 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档