网站大量收购闲置独家精品文档,联系QQ:2885784924

Lecture05对象互操作.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Lecture05对象互操作课案

事件驱动对象协同 最简化的面向对象开发过程 确定功能性需求与总体任务 设计合适的类,满足这些需求和任务 实体化类 通过外部触发的事件驱动对象操作 外部事件 点击界面上的一个按钮 从其他系统反馈的信息 学生通过SRS选课 一个Student对象 通过参数直接传一个对象 通过参数传学生ID号,通过ID号创建一个对象 一个DegreeProgram对象 合适的Course对象 一个Classroom对象 一个Transcript对象 图4-1 说明对象协同工作的示意图,实际工作更加复杂 学生选课 用户只要填几个参数,点击一个按钮,等一会就可以知道选课是否成功,但内部比较复杂,事件链条启动就会顺序或并行的执行,有点像打台球。 扩展:选课是一个典型的工作流程序,在.net中可以选用状态机编程来设计工作流引擎,自己设定工作流程及处理。 申明方法 对象的方法可以看作该对象能执行的服务 通过定义方法头(method header)可以确定需要做什么,完成服务需要什么信息,完成服务后返回什么结果 方法体(method body)定义具体如何执行 与函数的函数头、函数体含义一样 方法头 方法名称 可选的传入形式参数 方法的返回类型 bool RegisterForCourse(string courseID,int secNo) 传入参数的含义:课程编号和课时号 返回结果是bool型,表示是否成功 扩展:返回结果可以是一个对象,为通用可以是一个字符串,但是使用xml格式进行封装,可传递任何结果 XML 序列化简介 序列化是将对象转换成易于传输的形式的过程 反序列化在流中重新构建对象 使类可序列化的最简单方法是按以下方式使用 Serializable 属性对其进行标记。 为什么要使用序列化? 将对象状态保存到存储媒体,以便可以在以后阶段重新创建精确副本; 将对象按值从一个应用程序域发送至另一个应用程序域。 例如可以序列化对象,并使用 HTTP 通过 Internet 在客户端和服务器之间进行传输,用于在 ASP.NET 中保存会话状态。 方法体 在类设计时还要编写每个方法在被调用时如何动作的内部细节,这些内部编程细节被称作方法体 方法体中的逻辑定义了抽象模型的业务逻辑(business logic),也被称为业务规则(business rules)。 例如isHonorsStudent方法中,有一个业务规则用来判断一个学生是否是荣誉学生。 return 语句 return用来退出方法 对于void返回类型,return是可选的 对于非void返回类型,必须至少一个return语句,后面必须跟有一个表达式,该表达式的值类型与返回类型吻合 较好的编程习惯是一个方法体仅包含一个return语句,例如 bool isHonorsStudent () { bool result =false; if (gpa=3.5) result=true; …… return result; } “自文档化” 使用说明性的文字给方法和参数命名 最规范的方式还是写说明性的文档 方法调用和点符号 消息(message)是一个表达式,由对象引用变量名 + “.” + 方法调用构成 例如 Student x = new Student(); x.RegisterForCourse(“Math 101”,10); 理解为:调用“对象x的方法”,或“向对象x发送一条消息”; 参数值 vs 参数 参数(parameter):是一个本地变量,在方法头中声明,在方法体中使用; 参数值(argument):是一个具体的数值,在调用代码中使用,并对参数这个变量赋初值; 参数值是值,参数是变量,是不同的概念 调用方法上下文的对象 在面向对象语言中,对象被当作方法的调用上下文。 类的静态方法只能类来调用,类的非静态方法必须使用类的对象来进行调用 消息(方法调用)也可以作为一种表达式,方法执行后的返回值就是表达式的值 可以使用一个变量来捕获方法的返回值,也可以直接用于表达式中(p80~81) 方法签名 方法签名(method‘s signature):这个术语指方法头中可被调用代码所“发现”的方面:方法名,传入参数的名称、顺序、类型和数量,但不包含参数名和返回类型 非正式术语参数签名指方法签名的一个子集,应用于重载 在对象间传递消息 图4-2中消息的传递: c.Register(s); s.Successfullyompleted(c2) 返回true,表示s学生已完成先修课程c2 返回true,表示对象c通过学生的选修申请 通过点操作符存取attribute 用点操作符可以向对象传递消息(调用方法) 也可以使用点操作符存取对象的属性 x.attrib

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档