定义接口Java接口-天津大学计算机科学与技术学院.ppt

定义接口Java接口-天津大学计算机科学与技术学院.ppt

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

第六章 面向对象设计 概要 软件开发过程 软件开发过程包含如下四个基本的步骤: 需求分析 软件设计 软件实现 (编码) 软件测试 这些过程并不一定完全是线性的 – 它们可以重叠,并且相互影响。 需求阶段 需求分析指明了程序要完成什么 what to do, not how to do it 通常软件需求会通过一系列的功能需求说明文档来表述。 建立详细的、清晰的、全面的需求通常是非常困难的。 认真对待需求分析,能够为整个项目节省可观的时间和金钱。 软件设计 软件设计:表明程序怎样来完成需求。 通常,软件设计要考虑: 将需求所描述的软件项目划分成多个部分 每个部分完成什么 面向对象的设计中,要考虑软件中所包含的类以及对象,以及类之间的关系等等 实现阶段 实现阶段是指将设计翻译成代码的过程。即将设计转换成某种程序设计语言的代码。 初学者通常认为编写代码是软件开发过程中最重要的部分,但是实际上,编码是最缺乏创意的阶段 几乎所有重要决定都在需求、设计阶段决定的。 实现阶段应该将重点放在编码的细节上,包括代码编写风格以及文档规范等。 测试 测试 的目的是确保程序能够在满足一定限制条件的前提下解决问题 程序交付用户之前应该进行全面的测试,发现程序的错误并且予以修复。 第6.9节深入讨论了有关测试的问题。 概要 识别类和对象 面向对象设计的核心任务是确定程序中需要的类 程序中的类可以是: Java标准类库的一部分 或者是以前开发项目的类,本项目可以重用 需要新编写的类 识别潜在类的一种方式是识别问题需求中所讨论的对象。 对象通常是名词,对象提供的服务(方法)通常是动词。 识别类和对象 这是一个需求文档中的一小部分: 识别类和对象 回顾一下,一个类表示具有相同行为的一类对象 通常,代表对象的类是单数名词 例如: Coin, Student, Message 识别类和对象 有时确定一个事物是否应该定义表示它的类是一件非常困难的事情 例如, 员工的地址应该采用实例数据还是Address 对象来表示呢? 对问题研究的越透彻,这些细节问题将越清楚 当一个类过于复杂,通常会将其分解成多个小的类来完成 识别类和对象 我们需要在适当细节上定义类 例如,没有必要为房子中的每个家用器具建立一个单独的类 显而易见,定义一个带有适当实例数据的通用的Appliance类更为合理 这些都依赖于问题的细节 概要 静态类成员 回忆一下,静态方法能够通过类名直接调用。 例如, Math类的所有方法都是静态的: result = Math.sqrt(25) 其实,变量也可以是静态的,即静态变量 确定方法或者变量是否为静态,是类设计中的关键步骤 静态修饰符 通过static修饰符申明静态的方法和静态变量 静态方法也称为类方法 静态变量也称为类变量 Static修饰符把方法或者变量与类建立关系,而不是此类的对象。 静态变量 通常,同一个类的 每个对象都有自己的数据空间,但是如果一个变量被申明为静态的,那么静态变量只能有一个拷贝: private static float price; 当类第一次引用时,静态变量的内存空间就被创建。 此类的所有对象共享此类中定义的静态变量 如果一个对象改变了静态变量的值,那么所有对象的此静态变量的值都会改变 静态方法 静态类成员 修饰符的顺序能够相互交换,但是通常将可见性修饰符放在最前面 静态方法不能引用实例变量,为什么? main 方法是静态的–java解释器不用创建对象自动调用此方法 静态类成员 静态方法和静态变量通常相互作用 下面的例子通过一个静态变量追踪创建了多少Slogan对象 参考 SloganCounter.java (第203页) 参考 Slogan.java (第203页) 概要 类之间的关系 软件系统中,各个类之间的关系多种多样 常见的三种关系是: 依赖关系: A uses B (一个类”使用”另一个类) 聚合关系: A has-a B (一个类的对象中包含另一个类的对象) 继承关系: A is-a B (一个对象是一种另一个对象) 我们先来讨论依赖关系和聚合关系 继承关系将在第8章学习 依赖关系(一) 依赖关系: 通常表现为一个类的方法调用另外一个类的方法,从而建立一种所谓的“使用”关系。 一般情况下,设计时应该尽可能减少类之间的依赖关系,类之间的依赖越少,系统出现错误的机会也越少。 依赖关系(二) 一些依赖关系出现在同一个类的对象之间 一个类的方法可以接受此类的一个对象作为参数 例如, str3 = str1.concat(str2); String类的concat方法接受另外一个String类的对象作为参数 参考 RationalT

文档评论(0)

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

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

1亿VIP精品文档

相关文档