第七章 面向对象

合集下载

Java面向对象程序设计案例教程(王贺) 第七章习题答案[5页]

Java面向对象程序设计案例教程(王贺) 第七章习题答案[5页]

1.选择题(1)下列说法中错误的是()A.对Swing构件只能设置一个边框B.Swing构件能建立组合边框或自己设计边框C.在Swing构件中,按钮可以使用图标修饰D.Swing构件支持键盘代替鼠标的操作(2)向容器添加新构件的方法是(A)A. add( )B. insert( )C. fill( )D. set( )(3)关于布局管理器LayoutManager,下列说法中正确的是(D)A.布局管理器是用来部署Java应用程序的网上发布的youtManager本身不是接口C.布局管理器是用来管理构件放置在容器中的位置和大小的D.以上说法都不对(4)JTextField类提供的GUI功能是(A)A.文本区域 B.按钮 C.文本字段 D.菜单(5)将GUI窗口划分为东、西、南、北、中五个部分的布局管理器是(D)A.FlowLayout B.GridLayout C. BoxLayout D. BorderLayout(6)关于Panel,下列说法中错误的是(D)A. Panel可以作为最外层的容器单独存在B. Panel必须作为一个构件放置在其他容器中C. Panel可以是透明的,没有边框和标题D. Panel是一种构件,也是一种容器2.填空题(1)( BorderLayout )包括5个明显的区域:东、南、西、北、中。

(2)Java的图形界面技术经历了两个发展阶段,分别通过提供AWT开发包和(Swing)开发包来体现。

(3)可以使用setLoaction( )、setSize( )或(setBounds( ) )中的任何一种方法设置组件的大小或位置。

(4)( GridLayout )布局管理器使容器中各个构件呈网格布局,平均占据容器空间。

(5)框架的默认布局管理器( BorderLayout)。

3.编程题(1)制作如图7-20所示的登录界面。

图7-20package com.zhouzhou;import java.awt.*;import javax.swing.*;public class Demo11 extends JFrame {// 定义组件JPanel jp1, jp2, jp3;JLabel jlb1, jlb2;JButton jb1, jb2;JTextField jtf1;JPasswordField jpf1;public static void main(String[] args) {// TODO Auto-generated method stubDemo11 d1 = new Demo11();}// 构造函数public Demo11() {jp1 = new JPanel();jp2 = new JPanel();jp3 = new JPanel();jlb1 = new JLabel("用户名");jlb2 = new JLabel("密码");jb1 = new JButton("登录");jb2 = new JButton("取消");jtf1 = new JTextField(10);jpf1 = new JPasswordField(10);// 设置布局管理(上面忘记:extends JFrame,这里出错了) this.setLayout(new GridLayout(3, 1));// 加入各个组件jp1.add(jlb1);jp1.add(jtf1);jp2.add(jlb2);jp2.add(jpf1);jp3.add(jb1);jp3.add(jb2);// 加入到JFramethis.add(jp1);this.add(jp2);this.add(jp3);this.setSize(250, 150);this.setTitle("登录");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}}(2)制作如图7-21所示的选择界面。

Visual FoxPro 9.0 基础教程第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 调用方法

第七章 面向对象的Java实现-继承和多态

第七章 面向对象的Java实现-继承和多态

Java教员
.NET教员
10
为什么需要继承 4-4
public class JavaTeacher2 extends Teacher { public JavaTeacher2(String myName, String mySchool) { super(myName, mySchool); 子类自动继承父类的属 } 性和方法,子类中不再 public void giveLesson(){ 存在重复代码 System.out.println("启动 Eclipse"); super.giveLesson(); } } public class DotNetTeacher2 extends Teacher { public DotNetTeacher2(String myName, String mySchool) { super(myName, mySchool); } public void giveLesson(){ System.out.println("启动 Visual Studio .NET"); super.giveLesson(); } } 使用继承,可以有效实现代码复用
4
本章目标
掌握继承 掌握super关键字 掌握多态
5
生活中的继承 2-1
生活中,继承的例子随处可见
动物 谁是父类? 谁是子类? 能说出继承的特点吗?
食草动物
食肉动物
继承需要符合的关系:is-a,父类更通用、子类更具体
6
生活中的继承 2-2
子类具有父类的一般特性(包括属性和行为), 以及自身特殊的特性
可以接收子类类型 public class HQ3 { public void judge(Teacher t){ t.introduction(); t.giveLesson(); 根据实际创建的对象 } 类型调用相应方法 大家好!我是北京中心的李明. 启动 Eclipse 知识点讲解 总结提问

什么是面向对象「什么是面向对象分析方法」

什么是面向对象「什么是面向对象分析方法」

什么是面向对象「什么是面向对象分析方法」面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到一定阶段后的产物。

面向对象其实是现实世界模型的自然延伸现实世界中任何实体都可以看作是对象对象之间通过消息相互作用另外,现实世界中任何实体都可归属于某类事物,任何对象都是某一类事物的实例如果说传统的面向过程式编程语言是以过程。

在我理解,面向对象是向现实世界模型的自然延伸,这是一种“万物皆对象”的编程思想在现实生活中的任何物体都可以归为一类事物,而每一个个体都是一类事物的实例面向对象的编程是以对象为中心,以消息为驱动,所以程序=对。

面向对象是指一种程序设计范型,同时也是一种程序开发的方法对象指的是类的集合它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的重用性灵活性和扩展性起初,“面向对象”是专指在程序设计中采用封装。

面向对象相比于面向过程,是两种不同的处理问题的角度面向过程更注重事情的每一个步骤和以及顺序,面向对象更注重事件有哪些参与者,以及各自需要什么比如洗衣机洗衣服,面向过程将会把任务解析成一系列步骤,打开洗衣机放。

面向对象Object Oriented,OO是当前计算机界关心的重点,它是90年代软件开发方法的主流面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围如数据库系统交互式界面应用结构应用平台分布式系统网络管理结构CAD。

你好面向对象就是指把一个应用程序看成是由许多“对象object”组成的,然后去对这些对象编程,让它们具有一定的功能类是具有相同或相似性质的对象的抽象就是类因此,对象的抽象是类,类的具体化就是对象,也可以说。

面向对象如果我没记错的话应该是一门Java语言吧,我记得上大学学计算机的时候学过一点,当然不是计算机专业的,学的水过地皮湿,都是点皮毛而已,具体的你可以找一下计算机相关方面的书来看一下。

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在。

第七章 包图-UML面向对象分析、建模与设计-吕云翔-清华大学出版社

第七章 包图-UML面向对象分析、建模与设计-吕云翔-清华大学出版社
包图
包图的基本概念
包图是用来描述模型中的包和所包含元素的组织方式的图,是维护 和控制系统总体结构的重要内容。包图能够组织许多UML中的元素, 不过其最常用的用途是用来组织用例图和类图。
在UML 1.X规范中,虽然没有明确规定包图属于一种图类型,却可以 使用包及包的关系来表示系统的结构,包图作为实际上存在并经常被 使用的一种图出现在UML中。最新的UML 2规范中已经明确定义了包 图。
元素的分包原则
元素不能“狡兔三窟”:树形结构的一个节点不能同时拥有两个父 节点,一个元素也不允许在两个包中重复出现。
相同包内元素不能重名:包所具有的命名空间的作用要求用一个包 中的同种类元素名称必须是唯一的。
包内元素要紧密联系:分在同一个包中的元素应该具有某些相同的 性质,即包的高内聚性。
包与包尽可能保持独立:包和包之间需要尽可能减少耦合度,要求 包内元素与外部元素有尽可能少的依赖关系。
DataType
+ Intege 元素的分包原则
包的概念
pkg Logical View
包是用于把模型本身组织成层次结构的通用机制, PackageName 它不能执行。
PackageName
+ ContentA + ContentB
包名:与类图相似,包有简单名与路径名两种命 pkg Logical View
PackageB
包的依赖关系
容易出现的问题:循环依赖
pkg Logical View PackageA
循环依赖的出现是令人困惑、也是非常容易
产生错误的。尤其是当依赖关系表示包的引 pkg Logical View PackageA
入时,循环依赖会导致将模型转化成代码后

第七章 面向对象的程序设计

第七章 面向对象的程序设计

第七章面向对象的程序设计本章是面向对象的程序设计。

与第五章介绍的面向过程的结构化程序设计不同,主要介绍面向对象程序设计的基础知识,包括面向对象的基本概念以及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属性。

面向对象分析与设计课件第7章 状态图与活动图建模

面向对象分析与设计课件第7章 状态图与活动图建模

7.1 状态图的构成元素
统一建模语言中,状态图主要由状态和迁移两大类模型元素组成。对于图中 的每个状态,还定义了状态图主体对象在该状态下需要完成的各个动作及其触发 原因或机制。对于每个迁移,状态图还定义了迁移的触发事件、迁移条件以及迁 移时所要完成的动作。
状态图还对状态进行了多种分类,同时也为这些分类提供了必要的支持。如 把状态按照时间顺序分为初态、终态和中间态。按照状态的层次结构划分为简单 状态、复合状态和子状态。对于子状态,还可以根据它们是否参与了并发活动而 划分为串行子状态和并发子状态。另外,为简单地表达某种复杂语义,状态图中 还定义了历史子状态等这样的特殊模型元素。为了表示不同状态与其行为之间的 关系,UML还为每个状态和迁移定义了若干种相关的动作。
状态名可以是任何一个满足UML命名规则的字符串,其内容 可以由用户指定。
每个动作中,则包含了触发动作的事件、事件参数、守卫 条件以及伴发的动作序列。
7.1.1 状态
所有这些动作可分成入口动作(on Entry)、出口动作(On Exit)、 事件动作(On Event)和动作(Do)等四种类型。
其中,入口动作(on Entry)和出口动作(On Exit)分别指对象在 进入和离开当前状态时需要完成的动作。
7.1.2 转换与事件
例如,在Java语言中,事件处理机制的主要内容如下: 1)事件:一种用于封装事件属性(事件相关信息)的对象,其内容还应 包括为事件响应者提供的服务。 2)事件源:即产生事件的对象。当事件发生时,它负责创建事件信号并 调用事件激活程序,向事件订阅者们发出事件信号(事件对象)。 3)事件响应者:需要对事件做出相应的对象。一个事件可以有多个事件 响应者。
对于任何对象来说,对象的状态取决于它的各种行为不断积累所 产生的结果。在任何给定的时间点,对象的当前状态就包括它所具有 的所有特性、所处的具体情形、满足的条件以及其属性的当前值。

第7、8章 深入面向对象练习题

第7、8章  深入面向对象练习题

一、选择题(1)下列构造方法的调用方式中,正确的是()A.按照一般方法调用B.由用户直接调用C.只能通过new自动调用D.被系统调用(2)下列叙述中,正确的是( )A. 声明变量时必须指定一个类型B. Java认为变量number与Number相同C. Java中唯一的注释方式是"//"D. 源文件中public类可以有0或多个(3)下列叙述中,错误的是( )A. 父类不能替代子类B. 子类能够替代父类C. 子类继承父类D. 父类包含子类(4)下列关于继承的哪项叙述是正确的?A.在java中允许多重继承B.在java中一个类只能实现一个接口C.在java中一个类不能同时继承一个类和实现一个接口D.java的单一继承使代码更可靠(5)下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?( )A.private B.无修饰符C.public D.protected(6)给出下列代码,如何使成员变量m 被方法fun()直接访问?class Test{ private intm;public static void fun(){ ... }}A.将private int m 改为protected int mB.将private int m 改为public int mC.将private int m 改为static int mD.将private int m 改为int m(7)下列关于内部类的说法不正确的是( )A.内部类的类名只能在定义它的类或程序段中或在表达式内部匿名使用B.内部类可以使用它所在类的静态成员变量和实例成员变量C.内部类不可以用abstract修饰符定义为抽象类D.内部类可作为其他类的成员,而且可访问它所在类的成员(8)在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。

这种面向对象程序特性称为()。

第7章面向对象软件开发过程-UP介绍

第7章面向对象软件开发过程-UP介绍
10
§7a.2 UP的阶段(细化阶段,elaboration)
细化阶段的产出:
–用例模型(完成至少80%)……所有用例均 被识别,大多数用例描述被开发; –补充捕获非功能性要求和未关联于特定用例 要求的需求(补充规范) –软件体系结构描述 –可执行的软件原型 –经修订过的技术风险清单和商业案例 –总体项目的开发计划,包括粗粒度的项目计 划,显示迭代过程和对应的审核标准; –用户手册的初始版本(可选)
–进行β测试以期达到最终用户的需要; –β测试版本和旧系统的并轨; –转换功能数据库; –对最终用户和产品支持人员的培训; –提交给市场和产品销售部门; –和具体部署相关的工程活动; –协调bug修订、改进性能和可用性(usability)等工 作; –基于完整的构想和产品验收标准对最终部署做出评估; –达到用户要求的满意度; –达成各风险承担人对产品部署基线已经完成的共识; –达成各风险承担人对产品部署符合构想中标准的共识
23
§7a.4 核心工作流 –工作流是产生具有可观察结果的活动序列
24
§7a.4 核心工作流
25
§7a.4 核心工作流(商业建模)
商业建模
–大多数商业工程化的主要问题是软件工程人 员和商业工程人员之间不能正确地交流,这 导致了商业工程的产出没有作为软件开发输 入而正确地被使用,反之亦然。 –在商业建模中使用商业用例来文档化商业过 程,从而确保了组织中所有商业过程人员达 到共识。 –商业用例被分析以理解商业过程如何被业务 支持,而这些在商业对象模型中被核实。 –许多项目可能不进行商业建模。
26
§7a.4 核心工作流(需求)
需求
–是描述系统应“做什么”,并允许开发人员 和用户就该描述达成共识。
创建构想 建立用例模型

第7章 面向对象学习方法学

第7章 面向对象学习方法学

第七章面向对象学习方法学面向对象方法学的出发点和基本原则,是尽可能按照人类的习惯思维方式,使开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是使描述问题域空间与实现解法的解空间在结构上尽可能一致.与传统的结构化方法相比,使用面向对象方法开发的软件,其稳定性,可修改性和可重用性都比较好.本章内容主要包括:传统方法学的缺点,面向对象的基本概念,面向对象模型.7.1 基础知识7.1.1 传统方法学的缺点结构化几其他方法学的本质,是在具体的软件开发之前,通过需求分析预先定义软件需求.然后一个一个阶段地开发用户所需要的软件,实现预先定义的软件需要.过去的经验需要告诉我们,结构化及其他方法学并不能完全消除软件危机.结构化及其他方法学仍然有许多不足之处.1.问题的表现1)生产效率低在生命周期方法学中,特别重视软件开发的阶段性.为了提高了软件开发的效率,减少重大返工次数,强调必须早每个阶段结束之前进行评估.从而开发过程中实行严格的质量管理,确实提高了许多软件的开发的成功率.但是,时间表明,开发高利率仍然很有用.2)不能满足用户需要实践表明,在开发需要模糊或需求动态变化的系统时,软件系统的结果往往不能满足用户需求的变化.主要表现在两个方面:一种是开发人员不能完全获得彻底理解用户的需要,以至开发的软件系统与用户预期的系统不一致;另一种表现是,所开发的系统不能适应用户需求变化,系统的稳定性和可扩充性不能满足需要.3)软件服用就是将已有的软件成分用于构造新的软见系统.软件复用是节约人力,提高软件效率的重要途径.结构分析.设计,几乎每一次开发一个系统时都需要针对这个具体的系统做大量的重复劳动..思维成果的可复用性差.4)软件很难维护实践经验告诉我们,即使是用生命周期方法学开发出来的软件,维护起来仍然相当困难,软件维护成本很高.2.问题的原因1)结构化技术本身的问题结构分析和设计技术的基本思想是从目标系统整体功能的单个处理着手,自顶向下不断的把复杂的处理分解为子处理,一层一层的分解下去,直到剩下若干个容易实现的子处理为止。

EPLAN培训第7章面向对象的设计

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 当前标识字母集

第七章 判断题-面向对象2

第七章 判断题-面向对象2

第七章判断题1.子类可以从多个超类中派生出来。

()2.protected类型的实例变量或方法只能有声明该变量或方法的类本身及其子类访问。

()3.当一个超类成员不适合该子类时,子类会以恰当的方式重新定义它。

()4.超类对象的集合通常比它的任何一个子类对象集合大。

()5.Java的每个子类的构造函数都要显式的调用它的直接超类的构造函数。

()6.在子类中可以用完全相同的signature重新定义一个超类方法,这称为方法的覆盖(override)。

()7.对子类实例化对象需要调用超类的构造函数进行初始化工作,完成对子类中的超类实例变量的初始化,则子类可以继承超类的构造函数。

()8.声明为final的类不能是超类。

()9.抽象类可以实例化对象。

()10.Java提供了一种称为“内部类”的机制,使类可以在其他类中定义。

()第七章选择题1.如果超类不允许其通过继承的方式产生的子类访问它的某些成员,那么它必须以什么方式声明该成员。

A. publicB. privateC. protectedD. static2.如果在你的类的层次结构的类中定义了finalize方法,它总是被定义为什么类型以便子类能访问该方法。

A. publicB. privateC. protectedD. static3.声明为final的变量不能在子类中覆盖,声明为()和()的方法是隐式的final。

A. public privateB. private protectedC. protected staticD. static private4.继承性使▁▁成为可能,它不仅节省开发时间,而且也鼓励人们使用已经验证无误和调试过的高质量软件。

A.节省时间B.软件复用C.软件管理D.延长软件生命周期5.如果Alpha类继承Beta类,Alpha类被称为▁▁类。

A.超类B.子类C.系统D.用户自定义6.在上题中,Beta类被称为▁▁类。

A.超类B.子类C.系统D.用户自定义7.四种成员访问形式是▁▁。

面向对象Java实验七字符串类

面向对象Java实验七字符串类

第七章字符串类
实验目的:掌握字符串概念,区分字符串类型和字符类型。

掌握String类的构造方法以及主要成员方法的用法。

掌握StringBuffer类的构造方法以及主要成员方法的用法。

实验内容:
1.设定一个有大小写字母的字符串,先将字符串中的大写字符输出,再将字符串中的小写字符输出。

*
2.设定一个有大小写字母的字符串和一个查找字符,使用类String的方法indexOf来判断在该字符串中要查找的字符的出现次数。

*
3. 输入一个字符串,统计其中有多少个单词?单词之间用空格分隔开。

4.有三个字符串,要求找出其中最大者。

vb12

vb12

第二节、 第二节、在程序中访问类
要使用一个类的新对象时,要做以下工作: 要使用一个类的新对象时,要做以下工作: (1)声明对象变量 (2)创建对象 (3)使用对象的属性、方法和响应事件过程 使用对象的属性、 (4)释放对对象的引用 一、声明对象变量 格式为: 格式为:Dim 对象变量名 As 类名 可用下列函数判断对象变量是否指向某对象。 可用下列函数判断对象变量是否指向某对象。
二、使用MSChart 控件绘制图形 使用MSChart 可以利用VB 中的MSChart 控件绘制各种图表。 可以利用VB 中的MSChart 控件绘制各种图表。 控件支持真正的三维表示, MSChart 控件支持真正的三维表示,支持所有主要的图 表 类型,值和数据点以条形图、折线图、标记图、 类型,值和数据点以条形图、折线图、标记图、填充区域 或饼图形式显示。使用该控件前, 或饼图形式显示。使用该控件前,必须先引用 文件,将其加入到工具箱中。 MSCHART20.OCX 文件,将其加入到工具箱中。 1、设置绘图系列数据 图表中一组相关的数据集合称为一个系列, 图表中一组相关的数据集合称为一个系列,一张图表 可有多个系列构成。将作图数据构成一个矩阵, 可有多个系列构成。将作图数据构成一个矩阵,如果以矩 阵列的数据作为系列,则称系列在列上, 阵列的数据作为系列,则称系列在列上,每行数据将绘制 出一组图表。 控件的 出一组图表。MSChart 控件的CHartData 属性是一个数 据 网格,用于存放绘图系列数据,默认系列在列上。 网格,用于存放绘图系列数据,默认系列在列上。在程序 代码中可以先将绘图数据存入数组中, 代码中可以先将绘图数据存入数组中,然后再设置 属性为该数组名, CHartData 属性为该数组名,即可将绘图系列数据装入 数

《实用软件工程》第7章 面向对象分析

《实用软件工程》第7章 面向对象分析
一般来说,应该按照问题领域而不是功能分解的方法来确定主题。此外确定主题应遵循 “使不同主题内的类之间依赖和交互最少”的原则来确定主题,可以使用UML的包来展现主题。
21
划分主题
B.主题图 上述的主题划分的最终结果能够形成一个完整的对象类图和一个主题图。 主题图一般有如下3种表示方式。 • 展开方式
18
建立对象模型
复杂问题(大型系统)的对象模型 通常由下述5个层次组成:主题层(也称 为范畴层)、类与对象层、结构层、属 性层和服务层,如图所示。
上述5个层次对应着在面向对象分析 过程中建立对象模型的5项主要活动:划 分主题;找出类与对象;识别结构;定 义属性;定义服务。实际上五项活动没 有必要的完成顺序,设计时也不需要严 格遵守自顶向下原则。
12
面向对象分析原则
1.定义有实际意义的对象 特别要注意的是,一定要把在应用领域中有意义的、与所要解决的问题有关系的所有事物作为对象,
既不能遗漏,也不要定义无关对象。 2.模型的描述要规范、准确
强调实体的本质,忽略无关的属性。对象描述应尽量使用现在时态,陈述语句,以保证语义的清晰。 定义对象时还应该描述对象之间的关系及对象的背景信息 3.共享性
27
确定属性
例:多媒体商店销售系统
需要处理的文件:图像文件和声音文件,都拥有名称和唯一编码,作者信息和 格式信息,声音文件还包括文件时长(秒)。 功能:①添加新的媒体文件;
②通过编码查找需要的文件; ③删除指定文件; ④统计系统中文件的数量。
28
确定属性
分析过程:根据文件的信息,图像文件和声音文件的类都需要有属性:id-编码,author-作者, format-格式。为了方便处理,还可加入source-文件位置。由功能①③,应该有按参数构造和按编码 删除的两个方法。此外还有findByld-查找,count-查找两个方法。

第7章 类与对象

第7章 类与对象
休息 7
抽象实例——人
OOP
数据抽象:
的 基 本 特 点
char *name,char *sex,int age,int id
代码抽象:
生物属性角度: GetCloth(), Eat(), Step(),… 社会属性角度: Work(), Study() ,…
休息 8
前一页
封装
OOP 的 基 本 特 点
inline int Point::GetY() { return Y; }
对象
类 和 对 象

类的对象是该类的某一特定实体,即 类类型的变量。
声明形式: 类名
例:
对象名;

Clock myClock;
前一页
休息
29
类中成员的访问方式
类 和 对 象

类中成员互访
– 直接使用成员名

类外访问
– 使用“对象名.成员名”方式访问 public 属性的成员
为了提高运行时的效率,对于较简单的函 数可以声明为内联形式。
函 数 成 员 的 定 义
定义方式二:
将成员函数定义为内联成员函数。 两种格式: (1)显式定义:在类外定义,用inline关键 字. (2)隐式定义:直接将函数体的定义放在类 的声明内。

休息 23
前一页
显 式 定 义 内 联 函 数 成 员
Eg: 课本P195-196
inline void Clock :: SetTime(int NewH, int
NewM,int NewS) { } Hour=NewH; Second=NewS; Minute=NewM;
Inline void Clock :: ShowTime()

第七章-面向对象设计PPT课件

第七章-面向对象设计PPT课件

面向对象的软件设计过程
7.1 设计用例实现方案
本节介绍UML交互图的语言机制和用例实现方案的设 计方法。
UML的交互图包括顺序图和协作图,适于用例实 现方案的表示。
用例实现方案的设计方法有三个步骤: (1) 提取边界类、实体类和控制类; (2) 构造交互图; (3) 根据交互图精化类图。
7.1.1 顺序图
(1) 界面控制:包括输入数据的格式及内容转换,输出结果的 呈现,软件运行过程中界面的变化与切换等。
(2) 外部接口:实现目标软件系统与外部系统或外部设备之间 的信息交流和互操作。主要关注跨越目标软件系统边界的 通信协议。
(3) 环境隔离:将目标软件系统与操作系统、数据库管理系统、 应用服务器中间件等环境软件进行交互的功能与特性封装 于边界类之中,使目标软件系统的其余部分尽可能地独立 于环境软件。
UML四种类型的消息
(1) 简单消息(Simple Message) 以一种简单、抽象的函数表示对象之间的信息传 递,不考虑通信过程的内部细节。简单消息在 UML顺序图中用普通的有向箭头表示。
(2) 同步消息(Synchronous Message) 消息源发出消息后必须等待消息处理过程完毕并返 回处理结果后,消息源才可继续执行后续操作。前 面所述的自调用消息应该是同步的。同步消息的表 示图元与简单消息相同,这表明UML在缺省情形 下认为简单消息即为同步消息。
第七章 面向对象的设计方法
设计用例实现方案 设计技术支撑方案 设计用户界面 精化设计模型 RUP中的分析与设计流程
面向对象的设计方法
基于UML的面向对象设计方法将分析模型转换为设 计模型。
面向对象: 分析模型---顶层架构图、用例与用例图、领域概念 模型构成。 设计模型----- 以包图表示的软件体系结构图 以交互图表示的用例实现图 完整、精确的类图 复杂对象的状态图 描述流程化处理过程的活动图
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

../案例/Animal.java ../案例/Food.java ../案例/Rabbit.java、Dog.java ../案例/Carrot.java、Bone.java
多态的作用
提高代码的可重用性 降低模块之间的耦合度
抽象类和抽象方法
形状类Shape需要提供用于计算面积和周长的方法, 但是形状本身没有被确定,那么计算周长和面积的 方法就无法确定,此时我们就需要使用抽象类和抽 象方法。 由于Shape类计算周长和面积的方法无法确定,那么 就可以将这样的方法声明为抽象的,以便在具体的 子类中进行实现。 抽象方法的声明
作业
作业四:
某公司的雇员分为以下若干类:
Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日 月份。方法:getSalary(int month) 根据参数月份来确定工资,如果 该月员工过生日,则公司会额外奖励100元。 SalariedEmployee:Employee的子类,拿固定工资的员工。属性: 月薪 HourlyEmployee:Employee的子类,按小时拿工资的员工,每月工 作超出160小时的部分按照1.5倍工资发放。属性:每小时的工资、 每月工作的小时数 SalesEmployee:Employee的子类,销售人员,工资由月销售额和 提成率决定。属性:月销售额、提成率 BasePlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售 人员,工资由底薪加上销售提成部分。属性:底薪。 写一个程序,把若干各种类型的员工放在一个Employee数组里,写 一个方法,打印出某月每个员工的工资数额。注意:要求把每个类 都做成完全封装,不允许非私有化属性。
[修饰符] abstract class 类名 [extends 父类名]{类体} 抽象类和普通类除了使用abstract修饰外和普通的类相 似 抽象类中可以没有抽象方法 但是一旦某个有抽象方法,那么这个类必须被声明为 抽象类
抽象类
抽象类
因为抽象类不是一个具体的类,所以无法实例化, 但是抽象类可以用于声明对象
接口的定义
在Java中接口不仅仅是程序开发过程中“约定”, 更是更加抽象化的抽象类 接口的定义
[修饰符] interface 接口名{[常量];[抽象方法];}
接口的实现
接口的实现
定义类时通过implements关键字实现接口
接口实现的语法
[修饰符] class 类名 [extends 父类名] [implements 接口 1,接口2,……]{类体部分}
用于判断一个对象是不是某个类的实例
本章总结
多态 包的使用 抽象类 接口
package 关键字 import 关键字 abstract关键字 final 关键字 interface关键字 implements关键字
作业
作业一
设计一个台灯类Lamp其中台灯有灯泡这个属性,还有 开灯(on)这个方法,设计一个灯泡类 其中有红灯泡 (RedBuble) 和绿灯泡(GreenBuble) 他们都有一个发亮 的方法,请设计出一段代码可以使台灯开启灯泡发亮, 并且保证替换不同种类的灯泡台灯类代码不被修改。
什么是多态
多态顾名思义即为多种形态的意思 Java中多态的含义
发送消息给某个对象,让这个对象自行决定采用哪种行为响 应这个消息 子类对象的引用赋值给父类引用变量来实现动态的方法调用
Java中形成多态的前提
继承 重写 向上转型
多态的应用
多态的应用
动物园有这些动物:狗、兔子等,饲养员每天都会 给这些动物喂食,狗喜欢吃骨头、而兔子喜欢吃胡 萝卜,通过Java程序模拟饲养员喂食 参考代码:
作业二:
设计一个继承关系其中存在动物类Animal、狗类Dog和 猫类Cat,对于猫类和狗类都有一个吃eat方法,但是猫 和狗的吃eat方法的实现不同,请合理的设计出Animal Dog Cat这3个类关系
作业
作业三:
设计一个形状类(接口)Shape,方法:求周长和求面积 形状类(接口)的子类(实现类):Rect(矩形),Circle(圆形) Rect类的子类:Square(正方形) 不同的子类会有不同的计算周长和面积的方法 创建三个不同的形状对象,放在Shape类型的数组里,分 别打印出每个对象的周长和面积
声明包
包的导入
一旦需要使用另外一个包中的类时,需要将该类导 入到当前类中,如需要在程序中使用java.util包下的 Scanner类,需要将给类先导入到使用的类中 类导入的语法
import 包名.类名; 或者 import 包名.*;
导入类
instanceof运算符
instanceof运算符的使用
抽象类
抽象类可以被继承,在子类中实现抽象类的所有抽 象方法,以达到抽象类的具体化
抽象类
具体化后的子类方法就可以用来创建对象了
接口
在软件工程中,经常将一个大的项目分由不同的开 发小组共同开发,各个小组的开发工作是并行的。 在很多时候,对于不同小组的程序员来说,清楚地 说明各自的软件如何相互作用,并就此达成统一 “约定”是很重要的。这种情况下,每一小组都可 以在对其他小组怎么编写代码一无所知的情况下, 就能编写自己的代码,并且各自小组编写的代码能 很好的协同工作。接口就是这样的“约定”。
[修饰符] abstract 返回值类型 方法名([参数列表]); 注意:因为抽象方法无法确定具体执行的功能,所有 抽象方法没有方法体,需要在小括号后加上分号
抽Hale Waihona Puke 方法抽象类 如果一个类的某些功能比较抽象或者无法在本类中 具体实现,可以将这个类声明为抽象的,那么这些 抽象或者无法具体实现的功能可以在子类中完成。 抽象类的语法
接口的实现
一个类可以实现多个接口,从而解决了Java单继承 的缺点。
接口的继承
在Java中类之间的继承关系是单继承,也就是说一 个类有且只能有一个父类。 而Java中的接口实现了多继承,也就是说一个接口 可以有多个父接口
接口的作用

提高程序的重用性 提高程序的可扩展性 降低程序的耦合度 实现了多继承
Java语言基础 第七章 面向对象
上章内容
static关键字 封装 继承
extends 方法重写 super关键字 向上转型 向下转型
本章内容
多态 包的使用
package 关键字 import 关键字
抽象类
abstract关键字
接口
多态的概念
接口的作用
实现多继承
接口的作用
实现了多继承
接口的作用
降低程序耦合度
接口的作用
降低耦合度
包的使用
什么是包
包是Java用于提供访问保护和命名空间管理的方式
简单的理解,包就是用来将Java中类和接口等进 行分类管理的工具,类似于操作系统中的目录 包的声明
package 包名; 包名的前半部分一般使用倒置的域名,后半部分一般 采用该包下类分类名(或者功能名),如:package com.bochy.util; 包的声明必须是整个类文件的第一行语句
相关文档
最新文档