收藏 分销(赏)

2023年面向对象的程序设计方法.doc

上传人:二*** 文档编号:4816773 上传时间:2024-10-13 格式:DOC 页数:11 大小:117.54KB
下载 相关 举报
2023年面向对象的程序设计方法.doc_第1页
第1页 / 共11页
亲,该文档总共11页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第一章 面向对象的程序设计方法面向对象程序开发重要内容涉及:1 面向对象的基本理论。2 面向对象的分析方法。3 面向对象的开发发语言。4 面向对象的程序设计方法。5 面向对象的数据库管理方法。11 设计的重要特性111 类及其定义 对象是客观事务的一种软件描述。而类是对象的一种抽象,类中包含了对象的属性特性。如图1-1所示。类的定义涉及:1 定义对象属性。2 定义属性操作。如整数类int,字符类char等等。如通过定义:char a,即产生了字符类的一个对象“a”。开发人员通过自定义类来描述特定的对象。例如可为矩形定义如下名为“Rect”的类:Class Rect /属性: float len

2、gth; float width; /操作 float perimeter(float length,float width); float area (float length,float width);float Rect:perimater(float length,float width)/:表达类属关系return(2*(length+width); float Rect:area(float length,float width) return(length*width); 在应用程序中只需定义: Rect rect1; 即生成了一个Rect类的对象rect1。112 封装是隐藏软

3、件模块的内部属性和操作,只通过特定接口与其它模块交互。封装的意义在于:1 提供一种全新的软件组织方法,适应面向对象程序设计的规定。2 通过隐藏数据保护与管理数据。3 增强程序的可复用性,减少反复劳动。113 继承它反映了客观事务之间内在的联系,在面向对象程序设计中具体体现为具有共同特性的类之间的继承性。若类A与类B具有继承性,类A是类B的子类,则类A的定义定义包含类B的所有属性和操作。例如平行四边形类Para定义如下:class para /属性 float a; float b; /操作其子类Rect的定义如下: class Rect:para /“:”表达类Rect是类para的子类 /属

4、性: /操作: float perimeter(float a,float b); float area(float a,float b); float Rect:perimeter(float a,float b) return(2*(a+b); float Rect:area(float a,float b) return(a*b); 图1-2所示为一个四边形类族继承关系示意。继承对于面向对象程序设计的重要意义在于:1 对的反映对象本质。2 增强应用程序的可复用性。3 实现类接口的一致性。114 多态性 多态性有重载和类属两种表现形式。1重载 是指相同的符号形式可代表不同的功能。运算符的重

5、载是最为常见的重载形式。下面的代码段实现了运算符“+”对于字符串重载:char * operator+(char *str1,char *str2);/重载函数据声明char * operator+(char *str1,char *str2) return(strcpy(str1,str2); 还支持函数名重载。例如定义如下两个比较函数: int compare(int a,int b); float compare(float a,float b);若在应用程序的执行体中引用上述函数:int c=compare(2,3);float c1=compare(2.3,3.5);则编译系统可根据

6、参数的不同匹配相应函数体完毕解决。2类属 在定义通用类模块的基础上,通过参数标记类的实际应用。定义形式如下:class query T type; /队列属性和操作的定义 在应用程序中通过下面的形式即可定义整数队列query_int和浮点数队列query_float:query(int) query_int;query(float) query_float;32 VC121 构造函数和析构函数1 构造函数完毕对象的初始工作。定义特点为:(1) 函数名必须与类名相同。(2) 无返回值。例如:class Rect public : /构造函数 Rect(int,int); /析构函数 Rect()

7、; private: /属性: float length; float width; private : /操作 float perimeter(float length,float width); float area (float length,float width);Rect:Rect(int a,int b) length=a; width=b; float Rect:perimater(float length,float width)/:表达类属关系 return(2*(length+width); float Rect:area(float length,float width

8、) return(length*width); 在应用程序中通过定义:Rect rect1(100,50);即构造了长、宽分别为100和50的矩形对象rect1。2析构函数完毕对象的释放。定义的特点为:(1) 函数名为类名前加“”。(2) 无返回值。122 类成员的外部属性1 Public类型2 Protected类型3 Private类型123 类的友员友员的声明形式如下:friend 友员类型 友员名;例如为类Rect定义友员函数GetLength和GetWidth的形式如下:class Rect Public : friend float GetLength(const Rect &);

9、 friend float GetWidth(const Rect &); private: float GetLength(const Rect &rect1) return(rect1.Length);float GetWidth(const Rect &rect1) rfeturn(rect1.Width);124 虚函数是类成员函数的多态性在继承中的体现。虚函数的声明形式如下:virtual 函数类型 函数名;例如:class Rect public : private: /属性: float length; float width; private : /操作 virtual flo

10、at perimeter(float length,float width); virtual float area (float length,float width); float Rect:perimater(float length,float width)/:表达类属关系 return(2*(length+width); float Rect:area(float length,float width) return(length*width); 则可如下定义矩形类Rect的派生类正方形Squ:Calss Squ:Rect Private : flaot side; float perimeter(float side); float perimeter(float side); return(4*side);float Squ:Area(float side) return(side*side);

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服