- 1、本文档共56页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 修饰符声明的类的成员
您可能关注的文档
最近下载
- 2024年上海市普通高校招生本科艺术甲批次平行段院校专业组投档分数线美术与设计类.pdf VIP
- 2024入团共青团基础知识题库(含答案).docx
- 2024年在线网课学习课堂《健康管理科研思维训练(杭州师大 )》单元测试考核答案.pdf
- 2024年中国河南国际合作集团有限公司人员招聘考试题库及答案解析.docx
- 《骆驼祥子》读书分享PPT课件(精选图文).pptx
- 汉长安城遗址总体规划.pptx
- 欠钱不还的法院起诉书.docx VIP
- GB-T 10125-2012 人造气氛腐蚀试验 盐雾试验.pdf
- 新人教版七年级上册生物全册教案(2024年秋季新版教材).docx
- pcs-9651_080885技术和使用说明书.pdf
文档评论(0)