第04章-天津大学计算机学院.ppt

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

第四章 编写类 概要 编写类 前几章程序中使用的类都是java标准类库中已经定义的类 本章,我们开始自己定义类,然后在此基础上设计程序 包含main 方法的类只是程序的执行入口 真正的面向对象编程是基于定义的类来创建对象。 类与对象 回顾一下第一章的知识,对象有状态和行为 考虑一个六面的骰子: 它的状态可以定义为: 投掷后显示的那一个面,即当前面 它的基本行为: 骰子能被投掷,投掷能可能改变骰子的当前面 我们可以通过设计一个类名为 Die的类来表示一个骰子,模拟骰子的状态和行为。 然后我们可以根据此骰子类实例化任意多的骰子对象 类 类包含数据申明和方法声明: 类 数据的值定义了通过类创建的对象的状态 方法的功能定义了通过此类创建的对象的行为 对于 Die 类,我们可以声明一个整数来代表此骰子显示的当前面 有一个称作 “roll”的方法,让骰子的当前面设置为1和6之间的一个随机数 类 我们可以根据需要给Die类设计其它数据和方法,使得此类的功能更加丰富并且增强其重用性 一个程序中没有必要使用一个类的所有内容 参考 RollingDice.java (第108页) 参考 Die.java (第109页) Die 类 Die类包含两个数据值: 常数MAX 表示骰子最大面的值 整数faceValue表示当前面的点数 方法roll 使用Math类的random方法来决定新面的点数 还有一些方法用于在任意时刻获取或重置当前面的值 toString 方法 所有的类都应定义一个 toString 方法 toString方法返回以某种方式表示此对象的一个字符串 当一个对象与一个字符串连接或者把对象作为参数传递给println方法,toString方法被自动调用 构造函数 前面提到过, 构造函数是一个特殊的方法,用于创建对象 构造函数名与类名相同。 Die类的构造函数用于设置每个新对象的初始面点数 public Die() { faceValue = 1; } 数据的作用域 作用域:程序中数据能被引用(使用)的位置: 在类级申明的数据(没有在任何方法内部),能被此类的所有方法使用,也称作实例数据: Die类的数据:MAX 、faceValue 方法内部声明的数据,只能在此方法中使用 方法中申明的数据称作局部数据(局部变量) 在 Die类, 变量 result 在 toString方法中申明表明:它是局部数据,只能在toString方法中使用,不能在其他地方使用。 实例数据 Die类中的变量faceValue 是一个实例数据(在类级声明)。 每次创建一个Die对象,一个新的faceValue 变量被创建。 每个实例(对象)都有自己的版本 一个类的所有对象共享方法的定义,但是每个对象都有各自的数据空间 只有通过这种方式,两个对象才能有不同的状态 实例数据 下面的图描述了两个Die对象: UML图(UML Diagrams) UML 是 Unified Modeling Language的缩写,中文名称是 统一建模语言 UML 图表示类与对象之间的可视化关系 UML 类图 由一个或多个类构成, 每个类由: 类名 属性 方法三部分组成。 类之间的线,表示关系. 带箭头的虚线,表明一个类使用另一个类的服务(即调用它的方法) UML类图 RollingDice程序的UML类图: 概要 封装 我们可以通过以下两种角度来观察一个对象: 内部 - 类中变量以及方法的详细定义 外部 - 一个对象提供的服务 (方法) 从外部的角度,一个对象是一个封装的实体,它能提供一些特定的服务。 服务就是方法 封装 一个程序 (称作客户) 可以使用另外一个对象提供的服务 例如:RollingDice程序使用die1和die2对象的方法 客户程序可以使用其他对象提供的服务(方法),但是客户对象不必了解那些服务的具体实现。 任何针对对象状态(对象变量)的改变应该由对象自己的方法来完成。 这也就是说,对象是自治的 封装 一个封装的对象可以被看作一个黑匣子 ( black box )它的内部机制对客户程序隐藏。 客户只需要调用对象的接口方法,这些接口方法管理对象的实例数据 可见性修饰符 Java中, 我们通过适当的使用可见性修饰符来实现封装。 Java 有三种可见性修饰符: public, protected, 以及private protected 修饰符与继承相关,我们将在后面的章节详细学习 使用public修饰符声明的类的成员能在任何地方引用。 使用private 修饰符声明的类的成员

文档评论(0)

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

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

1亿VIP精品文档

相关文档