1面向对象程序设计方法简介(1课时)
3.1面向对象程序设计方法简介(1课时)
教学目标:
1、 掌握面向对象程序设计语言的基本方法。
2、 熟悉对象、属性、事件、事件处理等概念,并学会运用(操作层面)。
教材分析:
学生初次接触面向对象的程序设计,对象、属性、类、事件和事件处理等概念都很陌生,教师可以通过一个具体、简单的vb 实例进行分析、探究,使学生掌握它们的含义及其关系,为进一步学习可视化的程序设计,在vb 中建立一个应用程序打下良好的基础。教学过程中可以采用讲授法、演示法和讨论教学法。教学时应该淡化名词、概念等抽象的内容,多一些具体的演示、讲解和分析。
学生分析
通过第一章的学习,学生已经从宏观上对算法的概念、设计和表达方法有了具体的了解。再加上第四章中的常量、变量、函数以及表达式等知识点,学生对于vb 语言表达式的计算有了初步的了解。
教学重点:对象、属性、类、事件和事件处理等概念
教学难点:面向对象程序设计的概念
教学流程
一、 复习引入
1、校对活动手册实践五的内容P10
2、复习:完成P92页练习1和2 (适当的缩减时间,快速的过去)
3、在我们学习了vb 语言的常量和表达式之后,我来学习一下vb 的界面设计(展示圆的面积计算机例子),这个就是用vb 工具开发的,Vb 是一个面向对象程序设计(OOP )开发工具。那什么是“面向对象程序设计” ?
二、 对象、属性
1、对象:
对象的概念来源于生活。在现实生活中,我们随时随地都在和对象打交道,我们骑的车、看的书以及我们自己,在一个VB 程序员眼中无一例外都是对象。
结合课本中的P48页的图312,构成这个应用程序的图形界面的,是以下各个对象。
对象:图形1
对象:标签1
对象:标签2
对象:命令按钮1
对象:文本框2
对象:文本框1
对象:窗体1
对象文本框1是用供用户输入半径
对象文本框2是用来显示圆的面积
对象标签1和2是用来说明文本框的用途
命令按钮:供用户命令应用程序开始计算
窗体1 容纳上述所有对象的容器
(让学生形成对对象有个感性的认识)
2、属性
对象是客观存在的事物或概念。它有两个特点:状态和行为。
一个对象的状态是通过若干个属性(property)来描述的;如矩形有高度和宽度等
行为是指对属性进行操作和处理的方法(method),如改变矩形的高度和宽度等。
(通过文本框1对象的属性的观察,在属性窗口中,要利用按分类序察看,形成属性的一个感性的认识,同时对name height width text等常见的属性名要让学生有一定的认知,为后续的打好基础。)
属性Name是文本框1的名称,属性width和hight是指文本框对象的高度和宽度,属性backcolor是指文本框的背景色,(教师可以试着改变他们的值,让学生观察变化)。
属性text是非常重要的,指文本框中显示的内容,程序在运行的时候,也可以改变这个属性的值。
我们可以通过语句r=val(text1.text)
把用户在文本框text1中的输入数据存储到变量r中。
在vb中Text1.Text的格式指出了对象text1的属性text(对象a.属性b)(在教学中要强化这点)
同样文本框2的值我们可以这样计算出来,text2.text=str(3.1416*r*r)
(对象和属性等概念只有个感性的认识就可以了,主要是让学生学会用对象去设计,然后学会这些属性值的设置方法,以及属性值的运用)
二、类
1、类(class)是对相同性质的对象的一种抽象,而一个对象则是类的一个“实例”。
2、具有相同性质的一批对象进行抽象,从而形成关于这些对象的一个概念。例如:汽车是一个类。具体的对象可以是:轿车、吉普车、中巴车、客车、跑车等。
3、如课本P50页中的图317 ,文本框1和2都是textbox类的两个对象。(要结合vb工具箱界面,我们设计的对象都是从这个箱子里拿出来的)。
4、如shape类,我们分别画圆、正方形、椭圆等,我们去试一下,改变属性shape的值,出来不同的形状
(对于教材中的大篇幅的去描述这些空洞的概念,可以省去,就象是在这里讨论哲学中的水果与苹果的关系的物质范畴。只要让学生简单的了解即可以)
三、事件和事件处理
1、事件:发生在对象上的事情,是由用户在对象上激发的一种动作。如在按钮对象上单击或双击鼠标
2、事件驱动:一个事件的发生,可以引起某个对象上某个方法的执行,即某个事件驱动了相应的事件处理过程的执行。
(教师可以设计一个按钮中没有代码,这时候按过去没有反映,让学生思考为什么?从而形成事件驱动的一个感性认识)
3、分析这个计算事件触发的代码,要做什么?(获取半径,计算机面积,送出结果)
Private Sub Command1_Click()
Dim r As Double
‘定义变量r 为双精度实数,用于存放半径值
r = Val(Radius.Text)
‘val ()函数将字符型值转换成数值型
Area.Text = Str(3.1416 * r * r)
‘str ()函数将数值型值转换成字符数值
End Sub
(本书中设计了两个实例,一个是求圆的面积,另一个是求扇形的面积,我觉的重复设计,没有必要,可以直接采用一个例子去分析。)
四、 练习 参见活动手册——实践二.DOC (本节课是基本上没有时间了) TextBox 对象
名称:Radius
TextBox 对象
名称:Area
CommandButton 对象
名称:command1 事件处理过程Command1—Click 的流程图
五、小结
今天我们主要学习了面向对象程序设计方法,它主要是依赖对象,通过对象的事件驱动来相应的代码。本节课中的实践二未完成的同学,下节课接着完成。
教后反思
学生对于概念的东西不怎么感兴趣,如果讲的很多,学生会对课失去兴趣。对于本课中出现的概念很多,所以抓住重点的对象、属性和事件驱动等概念来阐述‘面向对象程序设计’的思想精髓,所有的界面设计都是通过对象的绘制完成的,这个操作过程都是可视化的,发生在对象身上的事件,可以驱动不同的事件代码过程。
尽量用少的语言去描述概念,淡化概念,用一个vb程序,简单的说明上面有那些对象,比如画一个圆和文本框,然后讲属性的时候,可以通过他们的颜色和宽度的改变,来让学生有个感性的认识。然后对于类只要讲控件工具箱中的都是一个类,然后可以画出具体的对象实例就可以了。对于事件驱动,也要简单的说明,比如按钮中没有设置代码,那么单击这个按钮没有反应,要想在这个对象上发生的事件如单击或双击,产生反应则要赋予它功能,即编写代码。整个过程尽量要介绍到20分钟之内讲完,尽量让学生去接受这种思想。
面向对象程序设计教程 (马石安版)
第1章习题答案 名词解释 抽象:抽象(Abstract)就是忽略事物中与当前目标无关的非本质特征,而强调与当前目标有关的本质特征,从而找出事物的共性,并把具有共性的事物划为一类。面向对象方法中的抽象,是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。 封装:面向对象方法中的封装就是把将抽象出来的对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。 消息:消息是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对象要求另一个对象实施某种操作的一个请求。 填空题 (1) 面向过程的结构化程序设计方法面向对象程序设计方法 (2) 顺序选择循环 (3) 程序=数据结构+算法程序=对象+消息 (4) 过程类 (5) 抽象性封装性继承性多态性 选择题 (1) B (2) C (3) D (4) C (5) D (6) A (7) A (8) B C (9) A D 判断题 (1) t (2) f (3) f (4)f (5) t (6) f (7) f (8) t 简答题 (1) 结构化程序设计方法着眼于系统要实现的功能,从系统的输入和输出出发,分析系统要做哪些事情,进而考虑如何做这些事情,自顶向下地对系统的功能进行分解,来建立系统的功能结构和相应的程序模块结构,有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。 随着程序规模与复杂性的增长,这种面向过程的结构化程序设计方法存在明显的不足之处。首先是数据安全性问题,由于数据被每个模块所共用,因此是不安全的,一旦出错,很难查明原因。其次是可维护性及可重用性差,它把数据结构和算法分离为相互独立的实体,一旦数据结构需要改变时,常常要涉及整个程序,修改工作量极大并容易产生新的错误。每一种相对于老问题的新方法都要带来额外的开销。另外,图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难。 (2) 面向对象的程序设计方法中,将程序设计为一组相互协作的对象(Object)而不是一组相互协作的函数。在程序中,属性用数据表示,用来描述对象静态特征;行为用程序代码实现,用来描述对象动态特征。可见,在面向对象的程序设计方法中,对象是数据结构和算法的封装体。对象之间存在各种联系,它们之间通过消息进行通信。程序可表示为: 程序=对象+消息 在面向对象程序设计中,它着重于类的设计。类正是面向对象语言的基本程序模块,通过类的设计,来完成实体的建模任务。类通过一个简单的外部接口,与外界发生关系。一个类中的操作不会处理到另一个类中的数据,这样程序模块的独立性、数据的安全性就有了良好的保障。程序的执行取决于事件发生的顺序,由顺序产生的消息来驱动程序的执行。不必预先确定消息产生的顺序,更符合客观世界的实际。并且面向对象程序设计方法提供了软件重用、解决大问题和复杂问题的有效途径,具有抽象性、封装性、继承性和多态性等特点。
第3章 面向对象程序设计基础
第3章面向对象程序设计基础
第3章面向对象程序设计基础 【1】什么是Java程序使用的类?什么是类库? 答:类是将一类事物的特性描述出来,然后如果用这个类来定义对象,则该对象就拥有了这个类所描述的所有特性。 在Java系统中,系统定义好的类根据实现的功能不同,可以划分成不同的集合,每个集合称为一个包,所有包合称为类库。 【2】如何定义方法?在面向对象程序设计中方法有什么作用? 答:方法的定义由两部分组成:方法声明和方法体。 方法的声明如下: 返回值类型方法名(参数类型形式参数1,参数类型形式参数2…){ 程序代码; 返回值; } 在面向对象程序设计中,方法的作用是完成对类和对象属性操作。 【3】简述构造方法的功能和特点。下面的程序片段是某学生为student类编写的构造方法,请指出其中的错误。 void Student(int no,String name) {
studentNo=no; studentName=name; return no; } 答:构造方法的功能是:构造方法是一个特殊的方法,主要用于初始化新创建的对象; 特点:构造方法的方法名要求与类名相同,用户不能直接调用,只能通过new运算符调用,而且构造方法是不返回任何数据类型,甚至也不返回void数据类型,即不能在构造方法前加void。 错误之处:(1)构造方法Student()前不能加void,(2)不能用return语句,(3)类名Student 首字母S改成小写s. 【4】定义一个表示学生的student类,包括的域有学号、姓名、性别、年龄,包括的方法有获得学号、姓名、性别、年龄及修改年龄。编写Java程序创建student类的对象及测试其方法的功能。 class Student { String id; String name; String sex; int age; void talk(){
什么是面向对象程序设计
1 什么是面向对象程序设计,它与传统的结构式程序有什么不同。 面向对象程序设计是一种适用于设计、开发各类软件的范型。它是将软件看成是一个由对象组成的社会:这些对象具有足够的智能,能理解从其他对象接受的信息,并以适当的行为作出响应;允许低层对象从高层对象继承属性和行为。通过这样的设计思想和方法,将所模拟的现实世界中的事物直接映射到软件系统的解空间。 与传统的结构式程序设计相比,面向对象程序设计吸取了结构式程序设计的一切优点(自顶向下、逐步求精的设计原则)。而二者之间的最大差别表现在: ·面向对象程序采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免了结构式程序由于数据和过程分离引起的弊病。 · 面向对象程序是由类定义、对象(类实例)和对象之间的动态联系组成的。而结构式程序是由结构化的数据、过程的定义以及调用过程处理相应的数据组成的 2 用面向对象方法建立模型的思维过程是怎样的。 用面向对象方法建立拟建系统的模型的过程就是从被模拟现实世界的感性具体中抽象要解决的问题概念的过程。这种抽象过程分为知性思维和具体思维两个阶段,其中:·知性思维是从感性材料中分解对象,抽象出一般规定,形成了对对象的普遍认识。·具体思维是从知性思维得到出的一般规定中揭示的事物的深刻本质和规律,其目的是把握具体对象的多样性的统一和不同规定的综合。 3 解释以下概念: ①对象:在现实世界中,对象就是可以感觉到的实体。每个对象具有一个特定的名字以 区别于其他对象;具有一组状态用来描述它的某些特性;具有一组操作,每一个操作决定对象的一种功能或行为(为自身服务的操作和为其他对象提供服务的操作)。而在面向对象系统中,对象是可以标识的存储区域。每个对象的状态被保存在此区域中,而实现一类对象行为的操作(代码)被保存在另外相关的存储器区域中。 ②消息:消息是要求某个对象执行其某种功能操作(方法)的规格说明。因此,消息是 由消息的接收者、消息要求提供的操作(消息名)和必要的参数组成的。 ③类:在现实世界中,类是对一组具有共同特性(属性和行为)的客观对象的抽象。而 在面向对象系统中,类是由程序员自定义的具有特定结构和功能的类型,是一种代码共享的手段。 ④实例:任何一个对象都是该对象所属类的一个具体实例。 ⑤公有消息:是由对象外向对象发送的消息,用于激活该对象的某种方法。 ⑥私有消息:是由对象向自身发送的消息,用于内部操作;该类消息不能从对象外向该 对象发送。 ⑦消息序列:在面向对象系统中一个事件的发生总会有多个对象的多次相互作用才能完 成,使得这些对象能够相互作用的消息组成的序列被称为消息序列。 4 类与实例的关系如何? 类是创建对象的模板,而对象是实现类的实例。属于同一类的不同实例必须具有: ·相同的操作集合; ·相同的静态属性集合; ·不同的对象名和属性动态值。
面向对象程序设计实验指导书讲解
面向对象程序设计实验指导书 实验一、C++开发环境应用入门(2学时)(选做) 1、实验目的 (1)了解C++开发工具的特点 (2)熟悉C++开发环境 (3)学习用C++编写标准的C++程序 2、实验任务 使用C++来建立一个非图形化的标准C++程序,编译、运行下例程序: #include