第7章 面向对象的程序设计基础
Visual FoxPro 9.0 基础教程第7章 面向对象程序设计基础
类的事件和方法的定义
类的属性的定义
对象的操作
由类创建对象 objectname =createobject(classname) 设置对象的属性 父类.对象.属性=值 mand1.Caption=“退出” 调用对象的方法和触发对象的事件 Parent.Object.Method Parent.Object.Event 对象触发则执行事件的对应代码
7.1.2 类的概念
类(Class) 所谓类,就是一组对象的属性和行为特征的抽象描述。或者说,类是具有共同属性、共同操作性质的对象的集合。 类是对象的抽象描述;对象是类的实例。类是抽象的,对象是具体的。
7.2.1 基类
基类又可以分成容器类和控件类: 容器类(Containers class)可以容纳其它对象,并允许访问所包含的对象。如表单,自身是一个对象,它又可以把按钮、编辑框、文本框等放在表单中。 控件类不能容纳其它对象,它没有容器类灵活。如文本框,自身是一个对象,在文本框中不可放其它对象。由控件类创造的对象,是不能单独使用和修改的,它只能做为容器类中的一个元素,通过由容器类创造的对象修改或使用。
面向对象的可视化程序设计方法举例
7.1.1 对象的概念
对象(Object) 对象是反映客观事物属性及行为特征的描述。 对象是面向对象编程的基本元素,是“类”的具体实例。 属性(Properties) 对象的属性特征标识了对象的物理性质;对象的行为特征描述了对象可执行的行为动作。 对象的每一种属性,都是与其它对象加以区别的特性,都具有一定的含义,并赋予一定的值。
设计对象的两种方式
用编程方式设计对象 用面向对象方式设计对象
对象设计实例:编程方式
form1.SHOW 调用方法
程序设计概论期末考试范围答案
第一章程序设计基础知识一、基础题1.以下关于算法的描述中,错误的是(D)A.算法中描述的操作都是用已经实现的基本运算组成的B。
算法必须由计算机程序实现C.算法应该易于理解、易于实现和易于调试D.算法不应该处理输入的非法数据2.以下哪项不属于数据的逻辑结构(A)A.单链表B.输C.图D.集合5.(B)程序设计的基本思想是采用“自顶向下,逐步求精”的程序设计方法和“单入口单出口”的控制结构。
A.面向对象B.结构化C.函数式D.事件驱动6.强调以现实世界中的客观事物为中心来建立问题域模型,这种程序设计方法成为(C)A.事件驱动程序设计B.结构化程序设计C.面向对象程序设计D.函数式程序设计7.以下程序段是用(B)程序设计语言编写的。
MOV AX,ASUB AX,BMOV C,AXHLTA.机器B.汇编C.C#D.Java10.下列关于解决方案的叙述中,不正确的是(B).A.一个解决方案可以包含多个项目B.解决方案可以包含的项目只能是类库C.利用解决方案资源管理器可以管理解决方案D.解决方案可以将多个项目组织在一起形成一个工作单元二、应用题1.简述程序设计的步骤.答:(1)分析问题:明确要解决什么问题(2) 设计算法:数据结构和算法(3)编写程序:将算法用程序设计语言描述出来(4)调试运行:语法错误、语义错误、异常4.简述C#语言的特点.答:(1)完全面向对象:具有面向对象语言的一切特性(2)简单易学:熟悉C、C++或Java即可掌握C#语言(3)安全:避免使用指针;自动内存管理和垃圾回收;使用委托取代函数指针.(4)跨平台:可以运行在不同操作系统上。
(5)跨语言:与任何支持。
NET的语言互相交换信息(6)强大的Web编程能力: Web应用程序第三章数据与变量一、基础题1。
以下不属于C#语言中基本数据类型的是(D)A.整数类型B。
浮点类型C.字符类型D。
枚举类型2.使用变量a存放数据-389,则将变量a定义为(B)类型最为合适.A。
上海交大面向对象程序设计C课件第7、8章
类对象作为成员实例
#include <iostream.h>
#include <string.h>
class girl { char name[10]; int age;
public:girl(char *n, int d) {strcpy(name,n); age=d;}
void disp() {cout<<name<<" "<<age<<" \n";} };
class A { int x;
public: A(int i) {x=i;} int getx() const { x =7; //错误,修改了数据成员x return x;}
};
const的其他用法
• 如果以“指针传递〞方式的函数返回值加 const修饰,那么函数返回值的内容不能被修 改,该返回值只能被赋值给加const修饰的同 类型指针。
void main()
{ A a1, a2(12), a3(1,3); //或者:A a1,a2=12,a3(1,3);
B b1, b2(789, 111, 333);}
执行结果
A... x=0 y=0 A... x=12 y=0 A... x=1 y=3 A... x=0 y=0 B... x=0 A:x=0 y=0 A... x=111 y=333 B... x=789 A:x=111 y=333
• A a(100); //对象a的SIZE的值为100
• A b(200); //对象b的SIZE的值为200
const对象与const成员
• 常量定义 • 常量对象 • 常量成员 • 整个类的常量 • const的其他用法
第七章 面向对象的程序设计
第七章面向对象的程序设计本章是面向对象的程序设计。
与第五章介绍的面向过程的结构化程序设计不同,主要介绍面向对象程序设计的基础知识,包括面向对象的基本概念以及Visual FoxPro支持的面向对象的编程技术,详尽介绍了对各类控件的选择与使用方法。
在对诸如表单等各类控件对象的设计、操作上,面向对象的编程技术有自己的独特之处,但在所有对象的各种事件和方法的程序代码设计中,仍然使用到结构化的程序设计方法。
本章的主要内容是面向对象程序设计的理论基础,其程序设计的基本目标是设计出能在可视化环境下运行的应用程序窗口界面—表单。
7.1 学习提要1.学习目标与要求通过本章学习,读者应达到以下要求:⑴了解对象、类等基本概念;⑵理解对象的属性、方法和事件;⑶熟练掌握表单的基本设计、操作和应用;⑷掌握常用控件的设计与使用。
⑸熟练掌握常用事件、方法的过程代码的设计方法。
⑹了解自定义类的创建和使用方法。
2.重点与难点:⑴本章重点:对象与类以及属性、方法和事件等基本概念;表单的设计与应用;常用控件属性、事件和方法的选择与运用。
⑵本章难点:本章的重点即为本章的难点3.主要知识点⑴面向对象的概念①对象、类②属性、方法、事件③Visual FoxPro 中的基类⑵表单的创建与基本操作①表单的创建使用“窗体设计器”或“表单向导”创建表单。
②表单的修改、运行使用“窗体设计器”编辑修改表单。
使用菜单或命令方式运行表单。
③表单的属性、事件和方法表单常用属性的设置,表单的常用事件、常用方法。
④设置表单的数据环境数据环境的概念,数据环境的设置。
⑶表单常用控件①表单常用控件的基本操作控件对象的选定,移动位置,改变大小,剪切、复制与粘贴,删除,布局设置。
②常用控件对象标签控件,命令按钮与命令按钮组控件,文本框与编辑框控件,选项组和复选框控件,列表框和组合框控件,容器与表格控件,页框控件,计时器与微调控件,图像控件等。
③控件对象的常用属性设置Caption属性,Name属性,Alignment属性,ButtonCount属性,BackColor属性,BorderColor属性,BorderStyle属性,Enabled属性,ForeColor属性,InputMask属性,PasswordChar属性,Picture属性,Height属性,Width属性,Left属性,Top属性,Value属性,Visible属性,FontName属性,FontSize属性,ControlSource属性。
Python课件PPT:第7章 对象与类
7.2 类的定义
类是一个用户定义类型,与其他大多数的计 算机语言一样,Python使用关键字class来 定义类。语法格式如下:
class <ClassName>: '类的帮助信息' #类文档字符串 class_suite #类体 其中,ClassName为类的名称;类的帮助
信 息 可 以 通 过 ClassName.__doc__ 查 看 ; class_suite 由类成员,方法,数据属性组成。
⑵ __str__(self):此方法被内置函数str()与print函数调 用。用来设置对象以字符串类型出现时如何显示, __str__()函数的返回值是一个字符串对象。
⑶ __repr__(self):此方法被repr()内置函数调用,此函 数可以让对象以可读的形式出现。
⑷ __getattr__(self, name):此方法用在读取或是修改 不存在的成员属性的时候。
派生类的语法如下所示:
class <类名称> [(基类1,基类2, ...)]:
[“文件字符串”]
<语句>
一个衍生类可以同时继承自许多个基类,基类之间以逗号(,)隔开。
7.8 类的多态
所谓类的多态(polymorphism),就是类可以有许多个 相同名称,但参数类型不同的函数。Python并没有明 显的多态特性,因为Python函数的参数不必声明数据 类型。但是利用动态数据类型(dynamic typing), Python仍然可以处理对象的多态。
7.4 类实例
7.4.1 创建类实例 7.4.2 类实例的内置属性
7.4.1 创建类实例
要创建一个类实例时,只要指定变量给类名 称即可。例如:
第7章VFP 6.0程序设计基础
条件
真 假
A
ENDIF 后面的语句
28
说明: a. 根据<条件>的逻辑值进行判断。如果<条 件>的逻辑值为.T.,就依次执行[命令序列],执行 完后就转去执行ENDIF之后的命令。如果<条件> 的逻辑值为.F.,则IF<条件>和ENDIF之间的所有 命令都不执行,而直接转到ENDIF之后的命令。 b. IF语句和ENDIF语句必须成对出现,且各占 一行。 c. 为了程序阅读方便,便于以后维护修改,建 议对于[命令序列]部分采取向右缩进书写的方式。
19
例7.6 建立程序EX7_4.prg,用一组@...GET命令, 对表“职工.DBF”中的某条记录进行编辑,记录号通 过键盘输入。 set talk off set century on clear use 职工 input "请输入记录号:" to n go n @3,15 say "职工编号:" get 职工号 @3,33 say "姓名:" get 姓名 @3,61 say "照片" get 照片 @5,15 say "性别:" get 性别
24
7.2 程序的基本结构
7.2.1 顺序结构 顺序结构是程序设计中最基 本的结构,该结构按照程序命令 出现的先后顺序,依次执行。其 它结构作为它的组成部分而存在 于程序之中。事实上,程序中的 命令如果不进行特殊说明,就自 动按其前后排列顺序执行。
A
B
25
例7.9 在xsqk.dbf中按学号查找 set talk off clear accept "sqk select * from xsqk where 学号=xh =xh use set talk on return
第七章 程序设计基础(3)
R=2 H=20 W=4 W=4
第七章 程序设计基础
7.3 子程序、过程和自定义函数
总结: 整体由
几个 基本图 形 组合而 成
基本图形相 同 ↓ 计算方法相 同 ↓ 程序代码相 同
图形参数 相同↓ 计算结果 相同
把各基本图形模块化(独立程序)
第七章 程序设计基础
9.4 子程序、过程和自定义函数
第七章 程序设计基础(3)
Contents
1 2
子程序 过程
3
4
自定义函数
变量的作用域和参数传递
第七章 程序设计基础
7.3 子程序、过程和自定义函数
7.3.2 子程序 ?什么是子程序,为何要引入子程序概念? 求此方案的施工面积。
W=4 R=2 W=4
H=20
第七章 程序设计基础
7.3 子程序、过程和自定义函数
第七章 程序设计基础
7.3 子程序、过程和自定义函数
计算此方案的施工面积。
R=4 H=40 W=? W=8 W=8 R=? W=? H序、过程和自定义函数
7.3.4 自定义函数 函数的调用格式?
函数名(实参表)
补充:实参与形参
实参:即实际参数,指函数调用时括号中的参数,是函 数运算所必须的数据。 形参:即形式参数,指函数代码中用于接收实参的变量。
例:阅读程序sub1,p4
第七章 程序设计基础
总结
1、子程序 2、过程及过程文件 3、自定义函数 4、变量的作用域及参数传递
第七章 程序设计基础
预习
1、什么是面向对象程序设计? 2、面相对象程序设计中的基本概念 3、对象的操作
第七章 程序设计基础
第七章 程序设计基础
《面向对象程序设计》第07章在线测试
A B C D
A B C D A、共享所有数据成员,每个对象还包含基类的所有B
C、不共享任何数据成员,但每个对象还包含基类的
D A B C D A B C D
B、能够通过成员运算符访问
C、仍然是基类的私有成员
D、变为派生类的私有成员
3、当保护继承时,下面说法正确的是()
A、基类的成员的访问权限在派生类中不变
B、在类作用域外能够通过派生类的对象来直接访问基类的公有成员
C、基类的保护成员和私有成员在派生类中的访问权限为受保护的
D、基类的公有成员在派生类中的访问权限为受保护的
4、当派生类中有和基类一样名字的成员时,下面说法错误的是()。
A、将产生二义性
B、派生类的同名成员将覆盖基类的成员
C、是不能允许的
D、基类的同名成员将覆盖派生类的成员
5、含有虚基类的派生类的构造函数调用次序错误的是()
A、虚基类,基类,派生类,对象成员
B、基类,派生类,对象成员,虚基类
C、对象成员,基类,虚基类,派生类
D、基类,虚基类,对象成员,派生类
第三题、判断题(每题1分,5道题共5分)
1、基类的保护成员在派生类中仍然是保护成员。
正确错误
2、基类的保护成员不能被派生类的对象访问。
正确错误
3、私有继承时基类中的public成员在派生类中是private的。
正确错误
4、在公有继承中,基类中只有公有成员对派生类是可见的。
正确错误
5、解决多继承情况下出现的二义性的方法之一是使用成员名限定法。
正确错。
第7章:MFC编程基础知识
Visual C++
概述
VC开发应用程序的最常用的模式就是利用MFC进行Win32应 用程序的设计。简单来说,MFC就是利用面向对象的思想,将 Windows大部分API函数封装起来的一个浩瀚的类库,利用MFC 编写程序本质上就是选择该类库中合适的类,并调用其下相 应成员函数来完成某个功能。虽然MFC编程相对于API编程简 单了(入门是简单了,但作到胸中丘壑自成却不容易),但 初学者却常常忘不了学习MFC的艰难。其主要原因有:(1) MFC采用的是C++语言,对C++本身的技术没有掌握。因此想学 好MFC,必须把第一篇的内容搞清楚;(2)MFC庞大的类库中 类的命名及成员变量或成员函数的命名没有清楚,其实很简 单,MFC中的类及其成员的命名都采用的是匈牙利命名法,把 这些名字的英文直接翻译过来,就知道它是什么意思。(3) MFC编程,首先生成的是一个应用程序架构,对这个架构的不 了解导致生成的代码不知其为何如此。本章就是要给大家一 个架构的概貌;(4)传统的API编程的步骤统统不见了,使人 们不知道编写的Windows程序什么时候建立起来 、什么时候 消亡. 事实上,MFC的应用程序架构把类似于API编程所要求 的步骤都隐藏了,都封装到架构中了。
Visual C++
*7.1.5 使用C++和MFC的好处
从本书的第一篇,我们已经看出了面向对象程序设计的好处,如 可复用性、代码和数据紧密地绑定等。类是面向对象程序设计的核心 概念,程序中不仅可以使用自己建立的类,还可以使用系统所提供的 类,一个好的类库可以大大减少编码的数量。MFC成功之处在于,它是 一个类库、一个包罗计算机系统方方面面的类库、一个集MicroSoft 各路软件高手之大成的类库。通过从MFC继承自己所需要的类,可以充 分利用基类所具有的各种功能。 MFC将类、类的继承、动态约束、类的关系和相互作用等应用程序 概念封装起来,可以使开发者高效、轻松地建立Windows应用程序,而 不受设备限制并且由事件进行驱动。 MFC具有良好的通用性和可移植性,它定义了应用程序的轮廓,并 提供了用户接口的标准实现方法,程序员所要做的工作就是通过VC所 提供的各种工具来完成这个工作。
面向对象的分析与设计课件-基础篇
北京大学信息学院研究生课程 面向对象的分析与设计
类名 属性 操作
抽 象
对象对象对象对象对象对象对象对象
1133
北京大学信息学院研究生课程
面向对象的分析与设计
继承:特殊类拥有其一般类的全部属性与操
作,称作特殊类对一般类的继承。
由继承机
继承意味着自动地拥有,或曰隐含地复制
制保证
由一组具有继 承关系的类所 组成的结构称 作一般-特殊 结构。它是一 个以类为结点 ,以继承关系 为边的连通的 有向图。
军人
例
军官
士兵
聚合刻画了现实事物之间的构成关系或者拥有关系。
两种聚合,两种实现方式:
紧密、固定的聚合关系 ——例如汽车与发动机
松散、灵活的聚合关系 ——例如公司与法律顾问
紧密、固定 的聚合方式 又称为组合
整体对象 部 分 对 象 部 分 对 象
嵌套对象
整 体
部 分 对 象
整 体 对 象
对
象
部
分
对
象
对象指针或对象标识
自20世纪80年代以来,面向对象方法已深入到计算机软件 领域的几乎所有分支。它不仅是一些具体的软件开发技术 与策略,而且是一整套关于如何看待软件系统与现实世界 的关系,用什么观点来研究问题并进行问题求解,以及如 何进行系统构造的软件方法学。从这个意义上讲:
面向对象方法是一种运用对象、类、继承、封装 、聚合、关联、消息、多态性等概念来构造系统 的2019软/11/4件开发方法。
EPLAN培训第7章面向对象的设计
导航器为集中管理项目数据提供了可 能,概括起来导航器有以下四种功能。
(1)中央管理器。所有项目中的元件、设 备、部件都集中到导航器中进行集中的编 辑和管理。
(2)预设计。可以进行项目的初始规划, 不管元件、设备或部件放置是否在原理图 上。
元件(组件):元件是组成设备的个体 单位。元件(组件)是可以用符号描述 的,因此,元件(组件)和符号是相互 关联的。
符号:是元件(组件)的图形化表示。 当在原理图上插入一个符号,有关符号 位置的参考被系统记录,一旦这个参考 被建立,符号的“实例”也就被建立。
7.3.1 标识字母
图7-7 标识字母集
7.2.3 放置
通过“新建”“新设备”或“导入” 的方法,在设备导航器中建立了许多未放 置的设备。
在导航器中单击鼠标右键弹出菜单, 如图7-6所示,选择【放置】>【多线】。
图7-6 设备导航器中放入放置
7.3 设备
首先,需要明确设备、元件和符号 的概念。 设备:是由一个或多个元件组成。最为 典型的例子是接触器线圈和触点,这里 线圈和触点是元件。这里包含主功能线 圈和辅助功能触点。一个单极空气开关 即是设备又是元件。设备是用设备名称 进行标识的。
图7-19 “属性(元件):常规设备”标签下主功能的设置
图7-20 “符号数据/功能数据”标签下主功能的设置
7.3.8 同步功能文本
同步功能文本使同一设备的主功能和不 同的辅助功能的功能文本得到同步。
不论是选择主功能还是选择辅助功能, 功能文本都将轻松同步。
特别提醒:只能是同一设备,不同设备 不能用使用此功能编辑。
图7-8 当前标识字母集
第07章vfp程序设计基础
7.1 创建、修改和运行应用程序
7.1.1 创建应用程序 (3种方式)
一、VFP系统菜单创建
文件 | 新建 |程序 | 创建新文件
[注] 创建的文件不在项目中
二、项目管理器创建
代码 | 程序 | 新建
[注] 创建的文件在项目中
三、命令窗口直接输入方式
Modify command [程序名]
[注] 创建的文件在默认位置
31
例 将十进制数转换成二进制数表示。 算法:除2取余,先得到的余数是低位,后得到的余 数是高位。 clear d=int(rand()*100+1) ?d binary=space(0) do while d#0 b=d%2 binary=str(b,1)+binary d=int(d/2) enddo ? binary
26
多项式求和是基本算法 例: 1+3+5……+99 1!+2!+……+10! 1+1/2+1/3+……1/100 2/1+3/2+5/3+8/5+……前20项的和 …… sum=sum + ?
27
例: 计算一个字符串中包括多少个汉字。 基本算法:从字符串中依次取一个字符,如果其 ASCII码值大于127,则为一个汉字内码的第一个 字节。 clear cstring='学习 Visual FoxPro数据库管理系统' ncount=0 for i=1 to len(cstring) if asc(substr(cstring,i,1))>127 ncount=ncount+1 i=i+1 endif endfor ? '汉字个数为:',ncount
Java面向对象程序设计案例教程课件:图形用户界面开发与事件处理
《Java面向对象程序设计案例教程》
7.2 Swing基础
• Swing组件是Java语言提供的第二代GUI设计工 具包,它以AWT为基础,在AWT内容的基础上 新增或改进了一些GUI组件,使得GUI程序功能 更强大,设计更容易、更方便。
• Swing与AWT有以下不同。
• (1) Swing是完全用Java语言编写的,所以称 Swing组件是轻量级组件,没有本地代码,不依 赖操作系统的支持,比AWT构件具有更强的实 用性。Swing在不同的平台表现一致,并且有能 力提供本地窗口系统不支持的其他特性。
《Java面向对象程序设计案例教程》 • Swing的类层次结构如图所示:
《Java面向对象程序设计案例教程》
• 3. 简单的范例 • 一个简单的Swing GUI应用程序。该程序生成一个窗
口, • 窗口中有一个标签,用于显示输出。 • (1) 程序代码: • 1. import java.awt.* ; • 2. import javax.swing.* ; • 3. public class SwingDemo • 4. { • 5. public static void main(String args[]) • 6. { • 7. JFrame fm = new JFrame("第一个Windows程序") ; • 8. JLabel label = new JLabel("这是第一个GUI程序") ;
• 教材例题7-12 利用组合框显示、选取地名。
• 教材例题8.2 ,例题8.3用不同方法生成JFrame窗口
《Java面向对象程序设计案例教程》
• 7.3.2 面板容器JPanel
• 面板JPanel也是Java中常用到的容器之一,面板是一种透明 的容器,既没有标题,也没有边框,就像一块透明的玻璃。 与JFrame不同,它不能作为最外层的容器单独存在,它首 先必须作为一个构件放置到其他容器中,然后再把它作为容 器,把其他构件放到其中。
第 7章 类和对象
char GetSex(); };
7.5 数据成员的初始化
1.在构造函数的函数体中进行初始化。 2.在构造函数的头部初始化。 3.混合初始化。 4.拷贝构造函数
1. 在构造函数的函数体中初始化
class Person { char m_strName[20]; int m_nAge; int m_nSex; Person(){ strcpy(m_strName,”XXX”); m_nAge=0; m_nSex=0; } Person(char *name, int age, char sex) public:
家庭情况
基本工资: double 岗位津贴: double 劳保福利: double 独生子女: double 房租: double 电费: double 水费: double 取暖费: double 保育费: double 实发工资: double
类(Class)----数据类型
<数据成员或成员函数表>;
例7-1 定义一个Person类,用来说明人员类对象
// Example 7-1:定义Person类 class Person {private: char m_strName[20]; int m_nAge; int m_nSex; public: void Register(char *name, int age, char sex); char * GetName(); int GetAge(); char GetSex(); void ShowMe(); };
3. 对象的引用
对象是包含现实世界物体特征的抽象实体,反映了系统为之保 存信息和(或)与之交互的能力。
第7章授课 VFP程序设计
ACCEPT "请输入字符数据:" TO CH1 ? CH1
3. 输入其他类型数据命令INPUT
【格式】INPUT [<提示信息>] TO <内存变量名>
【功能】暂停执行程序,在VFP主窗口中显示提示信息,并等 待用户从键盘上输入数据。
① 执行“文件”→“保存”菜单命令或单击“常用”工具栏 中的保存按钮 。
② 按 + 组合键或单击程序编辑窗口的 按钮。
2. 运行程序有三种方法:
① 在程序编辑窗口为当前活动窗口时,可以直接单击常用工 具栏上的“运行”按钮 ,运行编辑窗口中的程序。
② 执行“程序”→“运行”菜单命令,在弹出的对话框里选
5. QUIT
【格式】QUIT 【功能】结束当前程序的执行,并退出VFP环境。
7.2.2 输入和输出语句
1. 等待命令WAIT
【格式】 WAIT [<提示信息>][TO <内存变量名>][WINDOW][TIMEOUT <
数值表达式>] 【功能】暂停执行程序,在屏幕上给出提示信息,并等待用户输入一个字
对给定的条件进行判断,然后根据判断结果确定 下一步执行方向的程序结构称为选择结构。VFP用IF 语句和DO CASE语句实现语句
本语句适用于两个分支的选择结构,即根据条件从两个语句序列中选择执 行其中一个。
【格式】IF <关系(或逻辑)表达式> <语句序列1>
7.1 程序设计基础
7.1.1 程序的相关概念 7.1.2 创建与修改程序文件 7.1.3 保存程序与运行程序 7.1.4 程序书写规则
《面向对象程序设计》课程标准
《面向对象程序设计》课程标准1.课程说明《面向对象程序设计》课程标准课程编码〔 38321 〕承担单位〔计算机信息学院〕制定〔〕制定日期〔2022年11月16日〕审核〔专业指导委员会〕审核日期〔2022年11月20日〕批准〔二级学院(部)院长〕批准日期〔2022年11月28日〕(1)课程性质:本门课程是物联网应用技术专业的必修课程。
(2)课程任务:主要针对程序员、测试员等岗位开设,主要任务是培养学生在软件工程项目开发岗位上的程序设计能力,要求学生掌握面向对象程序设计方面的基本技能。
(3)课程衔接:在课程设置上,前导课程有《计算机应用基础》、《C语言程序设计》、《Java程序设计》,后续课程有《物联网应用系统开发》、《物联网综合项目实训2》。
2.学习目标通过本门课程的学习,使学生掌握面向对象的基本概念和使用面向对象技术进行程序设计的基本思想;掌握面向对象编程工具的使用方法;培养学生动手开发程序的能力,使学生养成善于观察、独立思考的习惯,同时通过教学过程中的实际开发环节强化学生的职业道德意识和素养,为学生以后从事专业化软件开发工作奠定坚实基础。
通过本门课程的学习,使学生熟练掌握C#程序设计开发运行的环境配置和使用方法,使学生能够应用C#程序设计语言进行程序编写和调试,进一步掌握面向对象程序设计的基本理念。
3.课程设计本课程以C#物联网实训系统项目为载体,与新大陆公司合作设计了若干个典型事例作为具体的学习情境;根据岗位要求,确定学习目标及学习任务;本课程采取项目教学和案例教学的教学模式,以学生为主体、以培养学生面向对象程序设计能力和提高团队合作意识为导向组织教学考核。
表1:学习领域的内容与学时分配表2:课程总体设计4.教学设计表3:学习情境设计5.课程考核本课程的考核主要由平时成绩、期末考试两部分组成。
其中:(1)平时成绩:平时成绩占总成绩的30%,主要考查指标有:平时上课出勤情况、课堂表现、作业完成情况、实训环节等。
第7章_面向对象系统设计用2
7.10
设计关联
7.10
设计关联
(2) 两个方向的关联都用属性实现。具体实现方 法已在前面讲过,如图7.9所示。这种方法能实 现快速访问,但是,如果修改了一个属性,则相 关的属性也必须随之修改,才能保持该关联链的 一致性。当访问次数远远多于修改次数时,这种 实现方法很有效。 (3) 用独立的关联对象实现双向关联。关联对 象不属于相互关联的任何一个类,它是独立的关 联类的实例,如图7.10所示。
用户界面类 输入界面
用户界面
输入、输出、 数据校验、 发送业务处理请求 输入输出元素 业务处理对象
数据校验() 业务处理()
输出界面
图7.3(a) 用户界面包
图7.3(b)用户界面包含的类
2)业务处理包
如图7.4(a)所示,业务处理层的职责是: (1)实现各种业务处理逻辑或处理算法; (2)验证请求者的权限; (3)向数据访问对象发送数据持久化操作的请求; (4)向用户界面层返回处理结果。 业务处理包含的类如图7.4(b)所示。
1.ห้องสมุดไป่ตู้
设计实现服务的算法
考虑的因素: (1)算法复杂度。 (2)容易理解与容易实现。 (3)易修改。
2.
选择数据结构 3. 定义内部类和内部操作
7.10 设计关联
1. 实现单向关联-- 用指针可以方便地实现单向关 联。如果关联的重数是一元的(如图7.8所示),则实现关
联的指针是一个简单指针;如果重数是多元的,则需要用一 个指针集合实现关联(参见图7.9)。
2.面向对象数据库管理系统
◆扩展的关系数据库途径:与使用关系 数据库管理系统时方法相同。 ◆扩展的面向对象程序设计语言途径: 无须增加服务,这种数据库管理系统 已经给每个对象提供了“存储自己” 的行为。只需给需要长期保存的对象 加个标记,然后由面向对象数据库管 理系统负责存储和恢复这类对象。
软件工程 第7章--面向对象设计
§1. OOD准则
5、Cohesion:模块内各个元素彼此结合的紧密程度。 服务内聚(service cohesion):一个服务只完成一个功能。
类内聚(class cohesion):一个类只有一个用途,否则分 解之。
一般-特殊内聚(general-particular cohesion):
17
类构件
类构件:面向对象技术中的“类” 。类构件有3种 重用方式:
–实例重用 –继承重用 –多态重用 1. 可重用类构件应具备的特点 (1) 模块独立性强。具有单一、完整的功能,且经 过反复测试被确认是正确的。是一个不受或很少受 外界干扰的封装体,其内部实现在外面是不可见的。
18
(2) 具有高度可塑性。软构件的应用环境比集成电 路更广阔、更复杂。显然,要求一个软构件能满足 任何一个系统的设计需求是不现实的。因此,可重 用的软构件必须具有高度可裁剪性,必须提供为适 应特定需求而扩充或修改已有构件的机制,而且所 提供的机制必须使用起来非常简单方便。
对象 设计
面向对 象分析
人机界 面设计
任务管 理设计
数据管 理设计
4
§1. OOD准则
§1. OOD准则:优秀软件设计的一个重要特点是 容易维护
回顾:SD准则包括
Modularization Information hiding
Abstraction
Module independence
对于 OOD有类似的准则: 1、Module = Object
• Inheritance —— 无须改动原有代码
13
② 设计重用 —— 当移植系统时
§3. 软件重用
③ 分析重用 —— 当需求未变,而系统结构改变 时(例如将HDIS改为OO实现)
《实用软件工程》第7章 面向对象分析
21
划分主题
B.主题图 上述的主题划分的最终结果能够形成一个完整的对象类图和一个主题图。 主题图一般有如下3种表示方式。 • 展开方式
18
建立对象模型
复杂问题(大型系统)的对象模型 通常由下述5个层次组成:主题层(也称 为范畴层)、类与对象层、结构层、属 性层和服务层,如图所示。
上述5个层次对应着在面向对象分析 过程中建立对象模型的5项主要活动:划 分主题;找出类与对象;识别结构;定 义属性;定义服务。实际上五项活动没 有必要的完成顺序,设计时也不需要严 格遵守自顶向下原则。
12
面向对象分析原则
1.定义有实际意义的对象 特别要注意的是,一定要把在应用领域中有意义的、与所要解决的问题有关系的所有事物作为对象,
既不能遗漏,也不要定义无关对象。 2.模型的描述要规范、准确
强调实体的本质,忽略无关的属性。对象描述应尽量使用现在时态,陈述语句,以保证语义的清晰。 定义对象时还应该描述对象之间的关系及对象的背景信息 3.共享性
27
确定属性
例:多媒体商店销售系统
需要处理的文件:图像文件和声音文件,都拥有名称和唯一编码,作者信息和 格式信息,声音文件还包括文件时长(秒)。 功能:①添加新的媒体文件;
②通过编码查找需要的文件; ③删除指定文件; ④统计系统中文件的数量。
28
确定属性
分析过程:根据文件的信息,图像文件和声音文件的类都需要有属性:id-编码,author-作者, format-格式。为了方便处理,还可加入source-文件位置。由功能①③,应该有按参数构造和按编码 删除的两个方法。此外还有findByld-查找,count-查找两个方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章面向对象的程序设计基础一、单项选择题1.Visual FoxPro 6.0不但支持传统的面向过程的编程方法,而且全面引入了_______的程序设计方法,将FoxPro系列提升到真正的关系数据库世界。
(§7.1 理解)A)结构化 B) 非过程化C)面向数据库 D)面向对象2.从可视化编程的角度看,对象是一个具有属性和方法的实体。
一旦对象建立以后,其操作就通过与对象有关的_______来描述。
(§7.1 理解)A)属性、事件和方法 B)实体、类C)封装性、继承性 D)数据3._______也是一种对象,他将一些特殊的对象进行更严格的封装,定制成用以显示数据、执行操作的一种图形对象。
(§7.1 理解)A)类 B)父类C)子类 D)控件4.下列_______组是类。
(§7.1 理解)A)篮球、饭桌、人、房子 B)篮球、饭桌、工人、厨房C)文本框、命令按钮 D)球、桌子、人、房子5.下列关于面向对象程序设计(OOP)的说法,错误的是_______。
(§7.1 理解)A)OOP以编写程序代码为中心工作B)OOP以“对象”表示各种事物,以“类”表示对象的抽象C)OOP以“方法”表现处理事物的过程D)OOP以对象及其数据结构为中心展开工作6.任何对象都有自己的属性,下列关于属性的叙述中,正确的是_______。
(§7.1 理解)A) 属性用于描述对象所具有的性质和特点,通常用各种类型的数据来表示B)属性用于描述对象所具有的内部特征,通常用各种类型的数据来表示C)属性用于描述对象所具有的外部特征,通常用各种类型的数据来表示D)属性用于描述对象所具有的固有方法,通常用各种程序代码来表示7.下列关于事件的说法中,错误的是_______。
(§7.1 理解)A)事件代码也可以像方法一样被显式调用B)事件是对象触发的行为描述,是一种预先定义好的特定动作C)事件可以持续完成。
D)事件由用户或者系统激活8.下列关于方法的说法中,错误的是_______。
(§7.1 理解)A)方法是与对象相关的过程B)方法是指对象为完成一定功能而编写的一段程序代码C)方法与事件有着紧密联系,一个时间必定有一个与之相对应的方法D)方法与事件相同,用户不可以扩充方法。
9.下列关于创建新类的叙述中,错误的是_______。
(§7.2 应用)A)从“项目管理器”里选择“类”| “新建”B)从系统菜单上选择“文件”|“新建”|“类”|“新建文件”C)可以在命令窗口输入ADD CLASS命令,进入“类设计器”D)在命令窗口里执行CREATE CLASS命令10. 下列关于“继承性”的说法,错误的是_______。
(§7.1 理解)A)继承性用来描述对象之间的共同属性B)继承性用来描述类之间的共同属性C)继承性可以避免方法和数据的重复D)继承性体现了一般化和特殊化的原则11.下列关于“封装性”的说法中,错误的是_______。
(§7.1 理解)A)封装性就是把对象的内部代码与操作过程隐藏起来B)封装是借助类来实现的C)封装是借助对象来实现的D)封装要求所有对象具备明确的功能,并有接口和其他对象相互作用12.用DEFINE CLASS 命令定义了一个名为“7_1”的FORM类时,若要为该类添加一个label1标签对象,应当使用的基本代码是_______。
(§7.1 应用)A)AddObject(“label1”,”” label”)B)MyForm.AddObject(“label1”,”” label”)C)Add Object label1 AS labelD)Add Object 7_bel1 AS label13. 下列关于将“类”添加到表单中的方法的说法,错误的是_______。
(§7.2 应用)A)将“类”从“类设计器”拖至“项目管理器”中B)将“类”从“项目管理器”拖至“类设计器”中C)将“类”从“项目管理器”拖至“表单设计器”中D)将“类”注册14.下列关于对象的引用说法错误的是_______。
(§7.3 理解)A)绝对引用是为了快速引用对象而采用的一种引用方式B)相对引用是为了快速引用对象而采用的一种引用方式C)引用是指在引用对象时,把对象的容器层次全部列出来D)对象的引用有绝对引用和相对引用15.下列关于类的说法错误的是_______。
(§7.3 理解)A)类不能被直接调用B)由类创建的对象可以被直接调用C)同一个类可以创建多个对象D)类可以被直接调用16.如果要提供对当前对象的引用,可以用_______关键字来设置对象的属性。
(§7.3应用)A)THIS B)THISFORM C) THISFORMSET D)PARENT17.下列关于设置单个对象属性的语法正确的是_______。
(§7.3 应用)A)Object.Property=Value B)Parent.Property=ValueC)Property=Value D)Parent.Object.Property=Value18.下列关于调用对象的方法的说法,错误的是_______。
(§7.3 理解)A)对象的方法没有返回值B)调用对象的方法时,如果该方法有返回值,被调用方法必须以圆括弧结尾C) 如果在调用方法时有参数传递,则必须把传递参数放在方法名后面的圆括弧内D) 在创建了一个对象后,可以在程序的任何部分调用方法19.在表单中加入两个命令按钮Command1和Command2,编写Command1的Click事件代码如下,则当单击Command1后,_____。
(§7.3 理解)mand2.Visible=.F.A)命令按钮组中的第二个命令按钮不可见B)Command1命令按钮不可见C)事件代码无法执行D)Command2命令按钮不可见20.在Visual FoxPro 6.0控件中,编辑框的默认名称为_______。
(§7.3 识记)A) List B) Edit1 C) Label D) Text21.在表单中编写Command1命令按钮的Click事件的过程代码,下列_______可以在单击命令按钮时退出表单。
(§7.3 应用)A)clear thisformB)thisform.hideC)thisform.unlodeD)thisform.release22.若某表单中有一个文本框Text1和一个命令按钮组CommandGroup1,其中,命令按钮组包含了Command1和Command2两个命令按钮。
如果要在命令按钮Command1的某个方法中访问文本框Text1的Text 属性值,下列式子中错误的是_____。
(§7.3 应用)A) ThisForm.Text1. Text B) This.Parent.Text1. TextC) Parent.Text1. Text D) This. Parent.Parent.Text1. Text23.调用对象方法的格式正确的是_____。
(§7.3 识记)A) Object.Method B) Method ObjectC) Parent.Object.Method D)Parent.Method二、多项选择题1.在表单Form1的事件或方法代码中设置该表单中命令按钮Command1的Caption属性为“确定”的正确命令是_______。
(§7.2 理解)A)mand1.Caption=”确定”B)mand1.Caption=”确定”C)mand1.Caption=”确定”D)mand1.Caption=“确定”2.在面向对象程序设计中,描述对象的三个要素包括________。
(§7.1 应用)A)属性 B)事件 C)开放性 D)方法3.面向对象程序设计的三个基本特征是_______。
(§7.1 应用)A)响应B)继承性 C)封装性 D)多态性4.在Visual FoxPro 6.0中,常用的表单事件有_______。
(§7.2 识记)A)INIT B)LOAD C)DESTROY D)CLEAR5. 在Visual FoxPro6.0中,下列名词属于表单控件的是_______。
(§7.2 识记)A)Load B) Text C)Label D)Click6. 在Visual FoxPro 6.0 中,下列名词属于对象触发事件的是_______。
(§7.2 识记)A)Unload B) DblClick C)Refresh D)Gotfocus7. 在Visual FoxPro 6.0的OOP概念中,下列说法正确的有_______。
(§7.1 理解)A)类是定义对象的特征和描述对象的外观与行为的模板B)对象是一个具有属性和方法的实体C)事件是对象触发的行为描述D)方法是指对象为完成一定功能而编写的一段程序代码8.下列有关面向对象程序设计的基本特征叙述正确的是_______。
(§7.1 理解)A)继承性用来描述基类和派生类之间的共同属性B)封装性是把对象的内部代码与操作过程隐藏起来C)多态性就是方法和名称完全相同D)用户的动作能够激发事件,但响应事件必须通过对应的方法来实现9.下面关于方法的正确说法是_______。
(§7.1 理解)A)方法是某一对象相关联的过程B)方法是指对象为完成一定功能而编写的一段程序代码C)方法程序创建完成后以.PRG文件保存D)一个事件必定有一个与之相对应的方法10.下列关于控件类的各种叙述中,正确的是_______。
(§7.1 理解)A)控件也是一种对象B)控件类是将特殊的对象进行更严格的封装C)控件是定制成用以显示数据、执行操作的一种图形对象D)控件类对象与容器类对象是相对而言的三、填空题1.一个对象建立以后,其操作就通过与对象有关的属性、_____和_____来描述。
(§7.1 识记) 2.面向对象程序设计的3个基本特征是继承性、_____和_____。
(§7.1 识记)3.Visual FoxPro 6.0中的基类有两大类型,分别是:_____和____;相应地,对象也分为_____和____。
(§7.1 识记)4._____不能被直接调用,由类创建的_____才可以被直接调用。
(§7.1 识记)5.引用对象的两种方式是_____和____。
(§7.1 识记)6._____对象引用提供对当前对象的引用,_____对象引用提供对当前表单的引用,_____对象引用提供了一种引用当前表单集的快捷引用,_____对象引用提供了一种引用当前对象的父对象的引用。