版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一讲 概论本讲要点计算机软件的简史面向对象技术的基础Java体系结构最简单的Java实例解决问题的求解过程7/19/20221计算机软件的简史计算机计算模式的三次浪潮分布式网络计算模式对软件开发技术的挑战CORBA 标准对软件业界的影响7/19/20222计算机软件的简史计算机计算模式的三次浪潮基于主机的计算模式:特征:应用程序,数据, 界面集为一体。 在主机上运行。7/19/20223计算机软件的简史计算机计算模式的三次浪潮客户机/服务器(C/S)的计算模式: 特征:C界面本地数据, S应用逻辑共享数据 在客户机和服务器上运行。7/19/20224计算机软件的简史计算机计算模式的三次浪潮分
2、布式网络(B/S)计算模式 特征:B界面表示层, S业务逻辑层数据访问层 存储数据层 在异地、异构机上运行。7/19/20225计算机软件的简史分布式网络计算模式对软件技术的挑战: 软件开发的4A目标 跨平台的互操作性(CORBA标准)7/19/20226计算机软件的简史分布式网络计算模式对软件技术的挑战:软件开发的4A目标 Any One Any While Any Time Any Device7/19/20227计算机软件的简史分布式网络计算模式对软件开发技术的挑战:跨平台的互操作性(CORBA标准出现)7/19/20228CORBA标准模型:IDL应用程序对象公用设施(CORBAFAC
3、ILITIES)垂直公用设施水平公用设施对象请求中介(ORB)公用对象服务(CORBAservices) 金融 税务 保险命名集合计时安全性交易器特许查询并发关系具体化持久性事件生命期事务处理属性系统设施信息设施任务设施界面管理7/19/20229CORBA模型:四层:1.应用程序对象层是与应用程序接口. 2.水平公用设施层是各行各业的公共设 施服务.如用户管理,信息管理,系统 管理,ftp之类. 3.垂直公用设施层是专业公共设施服务. 如金融业的清算系统.电子商务的银 行服务.7/19/202210CORBA模型:4.CORBA服务层是软件框架服务. 如系统管理:命名,生命期,交易,许 可证
4、,安全,计时等服务; 事物管理:事件,并发,事务等; 信息管理:属性,关系,查询,持久性. 具体化,集合等服务.7/19/202211CORBA模型: 服务层共15项.目前还在不断改进. 5.模型中的ORB主要负责CORBA四层 的通信.相当于软件总线的作用. 6.IDL(Interfaces Definttion Language)接口定义语言 参考书:周之英著“现代软件工程(下)”.7/19/202212CORBA标准:IDLIDL接口定义语言编译器机制: 桩(stub)、 骨架(skeleton)7/19/202213IDL编译器机制结构:ORB核心DII动态调用IDL桩ORB接口静态I
5、DL骨架动态骨架对象适配器对象实现客户7/19/202214IDL编译器机制:DII动态调用:运行时的动态接口在 客户端接受静态不能确定的请求.IDL桩(stub):静态接口,接受本地请 求,向ORB提交请求.7/19/202215IDL编译器机制:Skeleton骨架:用于远程客户与ORB 通信.静态骨架:IDL编译时的骨架接口.动态骨架:运行时动态骨架接口.7/19/202216IDL编译器机制:ORB接口:不同ORB实现的连接接口.对象适配器:不同执行对象共享ORB 服务的基本接口.7/19/202217CORBA标准对软件业界的影响 观念上的影响 应用软件体系结构的影响 对软件产业的影
6、响 对软件开发方法的影响7/19/202218CORBA标准对象软件业界的影响对观念上的影响:4A目标,文档按国际标准统一以“开发为主”转向以“服务为主”利用第三方软件集成企业文化:团队精神,和谐氛围人才素质:创新,责任,协作,诚信7/19/202219CORBA标准对象软件业界的影响应用软件体系结构的影响多层应用软件体系结构的诞生:界面层:浏览器表示层:Web服务器业务层,数据访问层:应用服务器存储数据层(包括原来应用系统):数据 库服务器7/19/202220多层应用软件体系结构的诞生 界面层 浏览器 分布逻辑层 客户界面控件 表示层 (JSP,ASP,CGI等) 代理层 产生:HTML,
7、XML DHTML,WML等 业务层 业务对象和规则,数据操纵和信息转换 数据访 数据库连接, 数据I/O接口 问层 存储数 数据库系统,XML库等 据层 查询,存储优化和性能协调7/19/202221多层应用软件体系结构的诞生界面层: HTML,Applet,Windows等. 客户界面控件: WINDOWS窗口, Java AWT,Swing等7/19/202222CORBA标准对象软件业界的影响对软件产业的影响:软件中间件提供商软件平台提供商服务器软件提供商构件提供商软件服务(咨询)7/19/202223CORBA标准对象软件业界的影响对软件开发方法的影响基于构件的开发方法流行:构件定义
8、构件特征构件优势7/19/202224构件的定义1:构件是一个几乎独立的可替换的系 统部件。它在有明确定义的体 系结构上下文中,完成指定功 能。它提供一组接口作为构件 与外界联系的契约。7/19/202225构件的定义2:软件构件是一个组合单位,它包 括合同声明的接口及明确说 明的上下文相关性。它可以 被独立部署且服务于第三方 所做的组合。7/19/202226构件特征:有用性:构件是将功能逻辑与实现封装为一体的部件。对外界是透明不可视但功能明确的组件。独立性:构件相对于其他构件是独立的,但它又很少单个存在,它总是由第三方对它进行组合,放到某个指定体系结构的上下文中运行。 7/19/20222
9、7构件特征:适应性:构件是一个可替换的单元,它通过契约式接口与外界联系.只要接口相同,就可以相互替换。易用性:构件是即插即用的部件,无需做任何加工就可以组合运行. 7/19/202228构件特征:商业性:构件接口按国际标准定义, 可由开发商开发,通过市场发行销售.递归性:构件可以自包含,因此构件定义实际上具有递归性,即组合好的构件本身,还可以作为构件元素与其他构件组合。这种构件称为容器。 (参考书:王克宏主编“电子商务软件技术教程” 清华出版社)7/19/202229构件优势:缩短开发周期,提高软件生产率提高软件灵活性和可靠性降低软件开发成本和维护费用有利于软件生产工业化7/19/202230
10、计算机软件简史小结认识到软件的本质特性是构造性和演化性:软件是人对知识的提炼、知识的固化、是人类知识和经验的抽象。为使软件能简洁、精确的描述客观事务,软件的多层应用建立在公共的体系结构上是构件技术的基本出发点,构件体系结构是构造软件的基石,它体现了软件的构造性本质。所有软件都可用构件集成而得.7/19/202231计算机软件简史小结软件是对客观世界中问题求解的具体描述。而客观世界是在不断发展,不断地变化。软件系统也不可能一成不变,新需求、新技术不断的出现,要求软件系统不断升级。这就是软件的演化性本质。7/19/202232计算机软件简史小结引来新的软件技术:Java语言、XML 语言、Web
11、Services、SOA开发软件: 强调集成、部署 强调面向Web应用 强调个性化服务7/19/202233面向对象技术的基础 面向对象方法的基本概念 面向对象方法的基本特性 面向对象的程序设计7/19/202234面向对象技术的基础面向对象方法的基本概念对象类接口方法与消息7/19/202235对象定义:对象是从客观事物中抽象出与系统相关的,能反映事物本质的一个实体,它是构成系统的基本单位; 如:一个手机、一辆自行车、一台电视机、一本书等.也可以是一些抽象的概念:银行账号、邮政编码、电话号码等 7/19/202236对象特征对象具备两个特征:状态和行为。如手机状态有品牌、颜色、号码、价格等;
12、行为有打电话、接电话、发短信、设闹钟、设音乐等。对象所包含本质的特征称为属性,对象的行为描述称为方法。 7/19/202237对象特征对象是问题域中事物的抽象.它反映了事物在系统中要保存的信息和所发挥的作用.系统中的一个对象在软件生命周期的各个阶段可以有不同的形式.它要经历若干演化阶段.7/19/202238对象特征对象只描述客观事物本质的,与系统目标相关的特征;对象将属性和方法封装为一体.属性值只能由方法访问和修改.它被隐藏在封装体内.使软件体系结构的复杂本质可隐藏于对象的单纯性中.7/19/202239对象在程序中定义:一个对象是变量和相关方法的软件封装包: 存款帐目余额计算余额 取款帐目
13、余额存款计算余额取款消息消息 消息7/19/202240类定义类是具有相同属性和方法的一组对象的集合,它的作用是定义对象.类是对象的抽象定义,对象是类的实例。类允许用其他类来定义而形成树结构.类的嵌套关系分为一般类(父类)和特殊类(子类).7/19/202241类的特征类的继承是面向对象方法的继承性体现.它给软件开发带来的优势是:利用类继承,程序可实现代码重用。利用抽象类定义普通行为,无需编写实现代码。其实现代码由它的子类编写。7/19/202242类的特征面向对象程序是一组对象类组成.对象之间通过接口请求与其他对象协同工作,通过类确定传递消息去调用方法,实现一定的功能. Java编程注重于类
14、和接口,程序的开发实质上就是将问题明确分成多个类,再从这些类中创建对象。利用类来实现程序代码的重用,这是面向对象编程最有魅力的成就。 7/19/202243接口的定义接口是对象所能接收请求内容的规范.接口由类定义.接口是一种抽象类,只定义了变量和方法,没有规定方法的具体实现。7/19/202244接口的特征接口给软件开发带来的好处是:接口可以实现不相关类有相同的行为.接口可指明多个类需要实现的方法.接口可了解对象的交互界面,而不需要了解对象所对应的类.7/19/202245消息定义向对象发出方法请求称为消息.对象通过消息进行通信.类定义了对象的所有消息模式,也定义了该对象的所有方法.消息包含信
15、息有:提供方法的对象名,方法名,输入信息和应答信息.7/19/202246消息特征使用对象只需了解其消息格式.消息给软件开发带来的好处是:消息将程序的数据流和控制流统一. 可用消息实现数据传递.相同处理的对象之间,无需消息传递. 7/19/202247面向对象方法的基本特性:封装性(encapsulation)继承性(inheritance)多态性(polymorphism) 7/19/202248封装性对象的封装有两个方面:一方面表示对象的属性和方法是不可分隔的结合体.一方面表示对象内部细节的隐蔽性.描述客观事务对象的独立单元.外界只能与方法联系.属性只能被对象的方法访问.7/19/2022
16、49封装性的优势对象的属性和方法封装为一体,意味着对象确实反映了客观事物的静态特征和动态特征融为一体的普遍规律.把对象的属性和行为结合产生新的数据类型.实现细节隐蔽,接口与实现的分离.使对象的使用者和设计者分离 7/19/202250封装性的优势既可以防止外界的干扰,又可以简化复杂性。在Java语言中,对象、类和包是不同层次上的封装,为管理大量的对象和类提供了方便,也增强了语言的安全性.封装也符合软件工程的模块化原则,满足软件重用的策略,降低了软件开发成本,缩短开发周期,使软件的开发和维护得到根本性的改善. 7/19/202251继承性继承性是面向对象技术赋予类的一种特征,即先定义一个具有一定
17、意义的类(父类),再给此类添加一些特性以派生出一个新类(子类).子类对象重复运用其父类的接口继承可实现子类重用继续可建立新类库7/19/202252继承性将多个类型视为同类型.同一份程序代码可作用于多个类型上.可提高系统的可重用性和可扩性.一个类是多个父类的子类,这种继承被称为多重继承. Java语言可利用接口实现类的多重继承。 7/19/202253多态性对象的多态性,是同一个属性名或方法名在父类,及其子类中具有不同语义.相同类名可引用不同的方法定义子类方法的覆盖可实现多态.方法的重载可在同类中定义多个同名的参数不同的方法来实现多态.7/19/202254多态性多态也称为动态绑定或后期绑定.
18、利用多态性提高了程序的抽象程度和简洁性.减少类和程序模块之间的耦合性,可实现程序良好的扩展性.动态多态性体现了面向对象编程中代码的重用和健壮性。Java是强类型语言,运行时对动态类型自动保留全部多态引用的标记,并在运行时对动态类型进行检查。7/19/202255面向对象的程序设计:面向对象程序设计包括两大任务:一是考虑客观问题中的哪些数据与操作进行封装,即将客观实体与程序的对象、类进行对应。二是考虑对象间需要哪些消息传递才能完成需求的功能。 7/19/202256面向对象的程序设计:在编程之前,对问题进行面向对象的分析,要与客户进行很好的沟通,努力了解问题域中所涉及的对象、对象之间的关系以及对
19、象需要完成哪些操作.再利用抽象原则,寻找对象共同特性创建出该问题的若干个类,由对象之间的关系定义出类的消息和方法。利用消息建立问题的模型,使模型尽可能接近问题的原意。 7/19/202257面向对象的程序设计:具体建模过程中通过对问题做不同层次的抽象。利用类的继承性,将类进行改造,定义出父类和子类。使问题中类的总数目不要太多。 编程单元是类, Java中,注意力放在构造新类和复用已有类上,而不是方法上.7/19/202258面向对象的程序设计“引用”是操纵对象的钥匙对象需要编程者创建建立新类都从类库中的类继承方法,参数,返回值7/19/202259Java的体系结构Java的体系结构Java的
20、实现机制JDK的下载和使用7/19/202260Java的体系结构应用程序(Applection&Applet),编译器 Java基本API Java标准扩展API Java基本类 Java标准扩展类 Java虚拟机,解释器 移植接口 操作系统 7/19/202261Java的体系结构最上一层是应用程序和Applet小程序.它们通过编译器完成程序到字节代码的转换.下一层是基本API和标准扩展API.它们都是为应用程序和编译器服务.下层是Java基本类和Java标准扩展类.最下层是移植接口,由适配器和Java OS组成.保证Java体系结构可跨平台.与各种操作系统连接. 7/19/202262J
21、ava的体系结构核心:虚拟机解释执行字节代码.可以用软件系统模拟实现,也可用硬件芯片实现.虚拟机把字节代码程序与各操作系统和硬件分开,使Java程序独立于平台.字节代码也是一种二进制文件,但不能直接在操作系统上运行,它可看作为虚拟机的机器码7/19/202263Java的实现机制Java虚拟机 垃圾回收机制 代码安全检测7/19/202264Java的实现机制垃圾回收机制:Java用一个垃圾收集线程对内存的使用进行跟踪, 该线程能在虚拟机空闲周期时,检查并释放那些不用的内存。在Java程序的生命周期中自动进行,这使编程者不要求考虑分配存储器,避免了存储器引起的漏洞。7/19/202265Jav
22、a的实现机制代码安全检测:在编译层:有语法检查在解释层:有字节码校验器,测试代码段格式 和规则检查; 访问权限和类型转换合法性检查; 操作数堆栈的上溢或下溢; 代码参数类型合法性.在平台层上:通过配置策略,设定访问资源域.无需区分本地或远程. 7/19/202266JDK的下载和使用 JDK的下载 JDK的命令 JDK目录结构 Java的API结构 7/19/202267JDK的下载进入点击左侧“Download”连接,进入下载页面点击页面中间的“Java 2 Platform, Standard Edition (J2SE)for Windows”连接,进入J2SE页面 点击页面右侧“J2S
23、E 1.5”连接,进入J2SE 1.5页面 7/19/202268 JDK的下载选择“Download JDK”栏目点击,进入“license agreement”文件的下载页面选择“accept”,接受Sun的协议点击页面中的“Download jdk-1_5_0-windows-i586.exe .”下载链接,自 动进行浏览器下载,也可使用下载工具进行下载 7/19/202269JDK命令Java语言的编译器。命令语法: javac 选项 源文件名Java语言的解释器,命令语法是: java 选项 class 命令行参数 . Java API文档生成器,命令语法: javadoc 选项 包
24、名/文件名Java applet 浏览器,命令语法: appletviewer -debug URLJava程序的调试器,命令语法: jdb 选项 类名7/19/202270JDK目录Bin:编译器、解释器和工具 Demo:各种演示例子 Docs:文档Include:本地方法文件 Jre:Java程序运行用环境的根目录 Lib:库文件 7/19/202271JDK的API结构java.lang包 :基本类java.awt包:是封装抽象窗口工具包 java.applet包:为Applet提供的所有类 java.io包:程序输入/输出文件操作的类. java.util包:提供实用程序类和集合类 j
25、avax.swing包:提供构建和管理应用程序的图形界面的轻量级的构件 7/19/202272最简单的Java实例:1 /例1.1 DisplayWindom.java2 /*目的:邓小平的一句名言的显示*/34 public class DisplayWindom 5 /main():应用程序入口7/19/202273最简单的Java实例:6 public static void main(String args) 7 System.out.print(邓小平说:);8 System.out.println(“不管白猫、黑猫,能捉老鼠的就是 好猫.);9 10 7/19/202274例题说明
26、注释:Java语言有3种注释语句,其形式为:双斜杠分隔符“/”表示本行是单行注释。 “/”可出现在一行的开始或中间.“/* */”表示是多行注释。多行注释以“/*”和“*/”为界限符。这二个界限符必须成对出现。文档注释以“/*”和“*/”为界限符。文档注释语句是为文档工具Javadoc生成API文档时,使文档和程序同步实现。程序java的第1、2 、5都是注释语句.7/19/202275例题说明类定义:关键词class指明了类定义的开始,后跟类名,然后是一对花括号,用来划定类体范围.对于本例,行410包含了DisplayWindom类的类体.Java允许在关键词class之前加修饰符,用来对所
27、定义类的性质加以限定。类名DisplayWindom是Java的合法标识符,并要求首字母大写. 在一个.java文件中最多只能有一个public类。public后紧跟的是所定义类的名称。Java要求public类的名称与程序文件名一致,因此,本例为DisplayWindom.java文件。7/19/202276例题说明Java的Application必须要求有main()方法,该方法要求一个String类型的单一参数,类型String是字符串列表的数组。圆括号后面的一对花括号是方法体。在本例的main()方法中,第6,7,8,9行的语句代码段构成方法体。分号(;)是Java语言的语句结束符。当
28、Java解释器开始运行Application程序时,流程控制管理器就转向执行应用程序的main()方法,而main()中的语句是按顺序执行。因此,当程序DisplayWindom运行时,首先执行第6行的语句,然后执行第7行和第8行的语句。7/19/202277例题说明本例第7行和第8行是利用System.out表示从System类中选出out变量值。通过这个值,程序可以访问显示窗口的文字对象。这个对象被称为输出流.访问System的一个成员out,程序使用点(.)把它从System中选出来,点是Java的选择器机制。System是是java.lang包中的标准I/O类,它提供许多系统信息。用它
29、编程者在与设备打交道的时,不用关心设备的底层操作细节7/19/202278Java语言的特点简单易学 面向对象支持分布式计算 跨平台健壮性 安全性强可移植 解释执行高性能 多线程Applet的特殊用途 动态性7/19/202279解决问题的求解过程软件工程原理面向对象编程语言的步骤7/19/202280解决问题的求解过程软件工程原理 分析 设计 编程 测试 维护7/19/202281解决问题的求解过程软件工程原理:分析:与用户交流,了解问题领域知 识.并确定用户的需求和目标。 (做什么)设计:描述解决问题所需要的信息和 方法。(怎样做)7/19/202282解决问题的求解过程软件工程原理:编程
30、:写出实现解决问题的程序代码。(具体实现)测试:对程序代码,进行单元测试和集成测试。(实现周期)维护: 交付使用后的不断改错,改进和完善.(终身服务) (反复迭代过程!)7/19/202283解决问题的求解过程面向对象编程语言的步骤由用户、业务专家和软件开发者组成 团队问题的需求的描述确定类确定变量和方法确定系统的体系结构确定开发工具并编写程序7/19/202284解决问题的求解过程自动取款机(ATM)软件求解过程:需求描述确定类确定业务流程(变量和方法)确定用户界面确定软件最终的体系结构7/19/202285解决问题的求解过程ATM软件求解过程:需求描述: 顾客持卡取款. 对使用ATM的事务
31、都留记录,每天报告. 软件有适当的安全措施.暂时不考虑支付 每个账户能同时在多个ATM上查询和取款 考虑未来扩展,增加出纳点和网络客户机7/19/202286ATM软件求解过程:需求描述限制: ATM软件由银行拥有 ATM软件在服务器中运行 卡由银行发行,并保留客户信息 ATM界面由银行确定 所有ATM的用户界面相同7/19/202287ATM软件求解过程:确定候选对象类: Transaction事务(查账,取款等) Session使用期 Card取款卡 DailyLog日志,ATM自动取款机7/19/202288ATM软件求解过程:确定候选对象类: Cashier出纳点 NetCleint网
32、络客户机 ATMManager 管理ATM软件 BankInfo银行资料7/19/202289ATM软件求解过程:确定对象类BankInfo ATMManagerDailyLogSession Card Agent ATMCashies Net客户Transaction111*1*1*11*7/19/202290ATM软件求解过程:确定对象类属性:ATMManager类属性:adminPassword:String /系统管理员口令bankInfos:Container /银行信息库sessions:Container /使用期容器dailyLogs:Container /日志容器agents
33、:Container /代理容器7/19/202291ATM软件求解过程:确定对象类属性:BankInfo类属性:name:String /名字prefix:Integer /前缀serverName:String /服务器名字cards:Container /取款卡7/19/202292ATM软件求解过程:确定对象类属性:Card类属性:number:Integer /编号name:String /名字accountName:Integer /账号sessions:Session* /使用期变数据7/19/202293ATM软件求解过程:确定对象类属性:Session类属性:startTim
34、e:Time /起始时间 endTime:Time /结束时间card:Card /取款卡agent:Agent /代理/事务可变数组transactions:Transaction*7/19/202294ATM软件求解过程:确定对象类属性:Transaction类属性:time:Time /时间content:String /内容7/19/202295ATM软件求解过程:确定对象类属性:DailyLog类属性:date:Date /日期sessions:Container /使用期容器7/19/202296ATM软件求解过程:确定对象类属性:Agent类属性:id:String /标识符na
35、me:String /名字sessions:Container /使用期容器7/19/202297ATM软件求解过程:确定对象类属性:ATM类属性:location:String /地点Cashier类属性:String /分店名NetClient类属性: url:URL /网站7/19/202298ATM软件求解过程:确定对象类属性:确定变量和方法:涉及对象: 顾客(取款卡),ATM客户机,ATM管理器,银行.两对C/S: ATM客户机/ATM管理器 ATM管理器/银行银行界面ATM管理器界面 7/19/202299ATM软件求解过程:涉及到的变量:cardInfor卡信息 account账
36、户 amount金额accountName账户名 accountInfor账户信息receiver收款人7/19/2022100ATM软件取款过程序列图插入卡问口令键入口令选择事务 问金额输入金额提供现金ATM查证命令检查账号资料口令正确口令正确请求处理事务处理银行事务事务完成数据记录确认事务已完成 ATMManagerBank7/19/2022101ATM软件求解过程:确定对象类属性:确定变量和方法:ATMManager类中的方法:/构造方法 ATMManager() ATMManager(adminiPassword String)7/19/2022102ATM软件求解过程:确定对象类属性
37、:确定变量和方法:ATMManager类中的方法:/注册系统方法login(cardInfo:CardInfo)logout()7/19/2022103ATM软件求解过程:确定对象类属性:确定变量和方法:ATMManager类中的方法:/访问方法: getBankInfos():BankInfo* getSessions():Session* getDailyLogs():DailyLog*7/19/2022104ATM软件求解过程:确定对象类属性:确定变量和方法:ATMManager类中的方法: getAgents():Agent* addBankInfo(name:String):Bank
38、Info removeBankInfo(name:String):BankInfo addSession(startTime,card,agent) removeSession(session):Session7/19/2022105ATM软件求解过程:确定对象类属性:确定变量和方法:ATMManager类中的方法: addDailyLog(date):DailyLog removeDailyLog(date) addAgent(agent) removeAgent(id) 7/19/2022106ATM软件求解过程:确定对象类属性:确定变量和方法:BankInfo类中的方法: BankInf
39、o(name,prefix,serverName) getName():String getServerName():String7/19/2022107ATM软件求解过程:确定对象类属性:确定变量和方法:BankInfo类中的方法:getCard():Card*addCard(number,name,accountNumberremoveCard(number)7/19/2022108ATM软件求解过程:确定对象类属性:确定变量和方法:BankInfo类中的方法: Card(number,name,accountNumber) getNumber() getName()7/19/202210
40、9ATM软件求解过程:确定对象类属性:确定变量和方法:BankInfo类中的方法: getAccountNumber() getSessions() addSessions(session)7/19/2022110ATM软件求解过程:确定对象类属性:确定变量和方法:Session类中的方法: Session(startTime,card,agent) getStartTime() getEndTime() getCard()7/19/2022111ATM软件求解过程:确定对象类属性:确定变量和方法:Session类中的方法: getAgent() getTransactions:Transac
41、tion* addSession(endTime) addTransaction(time,content)7/19/2022112ATM软件求解过程:确定对象类属性:确定变量和方法:Transaction类中的方法: Transaction(time,content) getTime():Time getContent():String7/19/2022113ATM软件求解过程:确定对象类属性:确定变量和方法:DailyLog类中的方法: DailyLog(date) /构造方法 getDate() getSessions() addSession()7/19/2022114ATM软件求解过
42、程:确定对象类属性:确定变量和方法:Agent类中的方法:(抽象类无构造方法) getId() getName() getSessions() addSession()7/19/2022115ATM软件求解过程:确定对象类属性:确定变量和方法:ATM类中的方法: ATM(id,name,location) /构造方法 getLocation():String7/19/2022116ATM软件求解过程:确定对象类属性:确定变量和方法:Cashier类中的方法: Cashier(id,name,branch)/构造方法 getBranch():String /获取分店名7/19/2022117AT
43、M软件求解过程:确定用户界面:银行用户界面:AccountMgrInf 接口AccountInf 接口AccountMgrImplAccountImpl管理实施实施1*7/19/2022118ATM软件求解过程:确定用户界面:银行用户界面AccountIF接口定义方法: getBalance():Float /提取结余/提取帐户信息 getAccountInfo():AccountInfo/提取账户历史 getHistory():String7/19/2022119ATM软件求解过程:确定用户界面:银行用户界面AccountIF接口定义方法:deposit(amount:Float):Float /存入金额withdraw(amount:Float):Float /提取金额transferTo(amountNameString,amount:Float) Float /转账payBill(receiver:String,amount:Float): Float/付款7/19/2022120ATM软件求解过程:确定用户界面:银行用户界面A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年树木买卖协议模板集锦版
- 医院重大医疗纠纷事件应急处置预案
- 学生心理健康状况定期上报制度
- 临时围墙工程施工方案
- 会议赞助协议书
- 设计师薪酬方案
- 白酒包销协议书
- 2025届高考语文 句子赏析讲解+真题练习 复习课件
- 不良事件奖惩制度
- 因房屋漏雨解除合同模板
- 如何做好机关办公楼物业管理工作
- 疝环充填式无张力修补的手术要点
- 盾构管片拼装质量问题分析及措施1
- 钢结构工程监理规划(完整版)
- 事业单位岗位设置审核表
- 印刷机操作规程
- 松江老宅概观
- 历世真仙体道通鉴
- 离心式压缩机安装工程监理实施细则模板
- 人教PEP五年级上册英语《Unit 2 Let‘s spell 》PPT课件
- 加强钻井安全管理工作的几点对策
评论
0/150
提交评论