尽 管 Java 语 言 是 在 C++ 语 言 基 础 上 发 展 起 来 的, 但 是 有 别 于 C++,Java 是 一 种 纯 粹 的 面 向 对 象 语 言 (Object-oriented language) 在 像 Java 这 样 纯 粹 的 面 向 对 象 语 言 中, 所 有



Similar documents
第2章 数据类型、常量与变量

尽 管 Java 语 言 是 在 C++ 语 言 基 础 上 发 展 起 来 的, 但 与 C++ 不 同,Java 是 一 种 纯 粹 的 面 向 对 象 语 言 (Object-oriented language) 在 Java 世 界 中, 所 有 事 物 都 是 Object 1. 通 过

《C语言基础入门》课程教学大纲

说 明 为 了 反 映 教 运 行 的 基 本 状 态, 为 校 和 院 制 定 相 关 政 策 和 进 行 教 建 设 与 改 革 提 供 据 依 据, 校 从 程 资 源 ( 开 类 别 开 量 规 模 ) 教 师 结 构 程 考 核 等 维 度, 对 2015 年 春 季 期 教 运 行 基

何 秋 琳 张 立 春 视 觉 学 习 研 究 进 展 视 觉 注 意 视 觉 感 知

<433A5C446F63756D656E E E67735C41646D696E F725CD7C0C3E65CC2DBCEC4CFB5CDB3CAB9D3C3D6B8C4CFA3A8BCF2BBAFA3A95CCAB9D3C3D6B8C4CF31302D31392E646F63>

<4D F736F F D C3E6CFF2B6D4CFF3A3A8B5DAC8FDD5C220C0E0CCD8D0D4A3A92E646F63>

I


Template BR_Rec_2005.dot

国债回购交易业务指引

,,,,, :,, (.,, );, (, : ), (.., ;. &., ;.. &.., ;, ;, ),,,,,,, ( ) ( ),,,,.,,,,,, : ;, ;,.,,,,, (., : - ),,,, ( ),,,, (, : ),, :,

龚 亚 夫 在 重 新 思 考 基 础 教 育 英 语 教 学 的 理 念 一 文 中 援 引 的 观 点 认 为 当 跳 出 本 族 语 主 义 的 思 维 定 式 后 需 要 重 新 思 考 许 多 相 连 带 的 问 题 比 如 许 多 发 音 的 细 微 区 别 并 不 影 响 理 解 和

徐天宏:《基因天堂》.doc

一 公 共 卫 生 硕 士 专 业 学 位 论 文 的 概 述 学 位 论 文 是 对 研 究 生 进 行 科 学 研 究 或 承 担 专 门 技 术 工 作 的 全 面 训 练, 是 培 养 研 究 生 创 新 能 力, 综 合 运 用 所 学 知 识 发 现 问 题, 分 析 问 题 和 解 决

修改版-操作手册.doc

登录、注册功能的测试用例设计.doc

Microsoft Word - 文件汇编.doc

Microsoft Word - 第3章.doc

HSK( 一 级 ) 考 查 考 生 的 日 常 汉 语 应 用 能 力, 它 对 应 于 国 际 汉 语 能 力 标 准 一 级 欧 洲 语 言 共 同 参 考 框 架 (CEF) A1 级 通 过 HSK( 一 级 ) 的 考 生 可 以 理 解 并 使 用 一 些 非 常 简 单 的 汉 语

马 克 思 主 义 公 正 观 的 基 本 向 度 及 方 法 论 原 则!! # #

用节点法和网孔法进行电路分析


Microsoft Word - 第7章 图表反转形态.doc

2. 本 次 修 改 后, 投 资 者 申 购 新 股 的 持 有 市 值 要 求 市 值 计 算 规 则 及 证 券 账 户 使 用 的 相 关 规 定 是 否 发 生 了 变 化? 答 : 未 发 生 变 化 投 资 者 申 购 新 股 的 持 有 市 值 是 指, 以 投 资 者 为 单 位

类 似 地, 又 可 定 义 变 下 限 的 定 积 分 : ( ). 与 ψ 统 称 为 变 限 积 分. f ( ) d f ( t) dt,, 注 在 变 限 积 分 (1) 与 () 中, 不 可 再 把 积 分 变 量 写 成 的 形 式 ( 例 如 ) 以 免 与 积 分 上 下 限 的

生产支援功能 使用说明书(IP-110 篇)

<4D F736F F D20B9D8D3DAB0BABBAAA3A8C9CFBAA3A3A9D7D4B6AFBBAFB9A4B3CCB9C9B7DDD3D0CFDEB9ABCBBE C4EAC4EAB6C8B9C9B6ABB4F3BBE1B7A8C2C9D2E2BCFBCAE92E646F6378>

电信系教学大纲的基本规范

0 年 上 半 年 评 价 与 考 核 细 则 序 号 部 门 要 素 值 考 核 内 容 考 核 方 式 考 核 标 准 考 核 ( 扣 原 因 ) 考 评 得 3 安 全 生 产 目 30 无 同 等 责 任 以 上 道 路 交 通 亡 人 事 故 无 轻 伤 责 任 事 故 无 重 大 质 量

( ) 信 号 与 系 统 Ⅰ 学 科 基 础 必 修 课 教 周 2016 年 06 月 13 日 (08:00-09:35) ( )

全国建筑市场注册执业人员不良行为记录认定标准(试行).doc

金 不 少 于 800 万 元, 净 资 产 不 少 于 960 万 元 ; (3) 近 五 年 独 立 承 担 过 单 项 合 同 额 不 少 于 1000 万 元 的 智 能 化 工 程 ( 设 计 或 施 工 或 设 计 施 工 一 体 ) 不 少 于 2 项 ; (4) 近 三 年 每 年

评 委 : 李 炎 斌 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单

3 月 30 日 在 中 国 证 券 报 上 海 证 券 报 证 券 时 报 证 券 日 报 和 上 海 证 券 交 易 所 网 站 上 发 出 召 开 本 次 股 东 大 会 公 告, 该 公 告 中 载 明 了 召 开 股 东 大 会 的 日 期 网 络 投 票 的 方 式 时 间 以 及 审

Microsoft PowerPoint - plan03.ppt

( 二 ) 现 行 统 一 高 考 制 度 不 利 于 培 养 人 的 创 新 精 神,,,,,,,,,,,,, [ ],,,,,,,,,,, :, ;,,,,,,? ( 三 ) 现 行 统 一 高 考 制 度 不 利 于 全 体 学 生 都 获 得 全 面 发 展,, [ ],,,,,,,,,,,

随着执业中医师资格考试制度的不断完善,本着为我校中医学专业认证服务的目的,本文通过对我校中医类毕业生参加2012年和2013年的中医执业医师考试成绩及通过率、掌握率进行分析,并与全国的平均水平进行差异比较分析,以此了解我校执业中医师考试的现状,进而反映我校中医类课程总体教学水平,发现考核知识模块教学中存在的不足,反馈给相关学院和教学管理部门,以此提高教学和管理水平。

深圳市新亚电子制程股份有限公司

评 委 : 徐 岩 宇 - 个 人 技 术 标 资 信 标 初 步 审 查 明 细 表 序 号 投 标 单 位 投 标 函 未 按 招 标 文 件 规 定 填 写 漏 填 或 内 容 填 写 错 误 的 ; 不 同 投 标 人 的 投 标 文 件 由 同 一 台 电 脑 或 同 一 家 投 标 单

课程类 别

抗 战 时 期 国 民 政 府 的 银 行 监 理 体 制 探 析 % # % % % ) % % # # + #, ) +, % % % % % % % %

定 位 和 描 述 : 程 序 设 计 / 办 公 软 件 高 级 应 用 级 考 核 内 容 包 括 计 算 机 语 言 与 基 础 程 序 设 计 能 力, 要 求 参 试 者 掌 握 一 门 计 算 机 语 言, 可 选 类 别 有 高 级 语 言 程 序 设 计 类 数 据 库 编 程 类

2006年顺德区高中阶段学校招生录取分数线

教师上报成绩流程图

目 录 一 系 统 访 问... 1 二 门 户 首 页 申 报 用 户 审 核 用 户... 2 三 系 统 登 录 用 户 名 密 码 登 录 新 用 户 注 册 用 户 登 录 已 注 册 用

3 复 试 如 何 准 备 4 复 试 成 绩 计 算 5 复 试 比 例 6 复 试 类 型 7 怎 么 样 面 对 各 种 复 试 04 05

目 录 关 于 图 标... 3 登 陆 主 界 面... 3 工 单 管 理... 5 工 单 列 表... 5 搜 索 工 单... 5 工 单 详 情... 6 创 建 工 单... 9 设 备 管 理 巡 检 计 划 查 询 详 情 销 售 管

名 称 生 命 科 学 学 院 环 境 科 学 1 生 物 学 仅 接 收 院 内 调 剂, 初 试 分 数 满 足 我 院 生 物 学 复 试 最 低 分 数 线 生 命 科 学 学 院 生 态 学 5 生 态 学 或 生 物 学 生 命 科 学 学 院


(Microsoft Word - NCRE\314\345\317\265\265\367\325\37313\324\27221\272\3051.doc)

上海证券交易所会议纪要

全国教师资格认定管理信息系统

18 上 报 该 学 期 新 生 数 据 至 阳 光 平 台 第 一 学 期 第 四 周 至 第 六 周 19 督 促 学 习 中 心 提 交 新 增 专 业 申 请 第 一 学 期 第 四 周 至 第 八 周 20 编 制 全 国 网 络 统 考 十 二 月 批 次 考 前 模 拟 题 第 一 学

Your Child is Myopic

珠江钢琴股东大会

全国艺术科学规划项目

第二讲 数列

抗 日 战 争 研 究 年 第 期 % & ( # #


公 开 刊 物 须 有 国 内 统 一 刊 (CN), 发 表 文 章 的 刊 物 需 要 在 国 家 新 闻 出 版 广 电 总 局 ( 办 事 服 务 便 民 查 询 新 闻 出 版 机 构 查 询 ) 上 能 够 查 到 刊 凡 在 有 中 国 标 准 书 公 开

2.5 选 举 陈 晓 非 女 士 为 第 六 届 董 事 会 董 事 候 选 人 的 议 案 ; 2.6 选 举 卢 婕 女 士 为 第 六 届 董 事 会 董 事 候 选 人 的 议 案 ; 2.7 选 举 张 文 君 先 生 为 第 六 届 董 事 会 独 立 董 事 候 选 人 的 议 案

ETF、分级基金规模、份额变化统计

变 量 的 主 要 作 用 是 存 取 数 据 提 供 存 放 信 息 的 容 器 对 于 变 量 必 须 明 确 变 量 的 命 名 变 量 的 类 型 变 量 的 声 明 及 其 变 量 的 作 用 域 JavaScript 是 一 种 弱 类 型 语 言, 也 就 是 说, 在 声 明 变 量

GB

2 熟 悉 Visual Basic 的 集 成 开 发 环 境 3 了 解 可 视 化 面 向 对 象 编 程 事 件 驱 动 交 互 式 开 发 等 基 本 概 念 4 了 解 Visual Basic 的 特 点 环 境 要 求 与 安 装 方 法 1 Visual Basic 开 发 应 用

Microsoft PowerPoint - plan03.ppt


i 1) 系 统 运 作 前 设 定 *1. [2.1 网 页 主 机 名 称 设 定 ] -- 设 定 校 务 系 统 的 主 机 IP 地 址, 以 供 其 他 个 人 电 脑 连 接 及 使 用 该 系 统 *2. [2.3.1 输 入 / 修 改 学 校 资 料 ] -- 输 入 系 统 使

一、资质申请

<433A5C C6B73625C B746F705CB9FABCCAD6D0D2BDD2A9D7A8D2B5B8DFBCB6BCBCCAF5D6B0B3C6C6C0C9F3C9EAC7EBD6B8C4CFA3A CDA8D3C3B0E6A3A92E646F63>

江 西 万 向 昌 河 汽 车 底 盘 系 统 有 限 公 钱 潮 轴 承 有 限 公 万 向 钱 潮 传 动 轴 有 浙 江 万 向 精 工 有 浙 江 万 向 系 统 有 报 告 期 内 审 批 对 子 公 额 度 合 计 (B1) 报 告 期 末 已 审 批 的 对 子 公 额 度 合 计 (

正 规 培 训 达 规 定 标 准 学 时 数, 并 取 得 结 业 证 书 二 级 可 编 程 师 ( 具 备 以 下 条 件 之 一 者 ) (1) 连 续 从 事 本 职 业 工 作 13 年 以 上 (2) 取 得 本 职 业 三 级 职 业 资 格 证 书 后, 连 续 从 事 本 职 业

黄 金 原 油 总 持 仓 增 长, 同 比 增 幅 分 别 为 4.2% 和 4.1% 而 铜 白 银 以 及 玉 米 则 出 现 减 持, 减 持 同 比 减 少 分 别 为 9.4%,9.4% 以 及 6.5% 大 豆, 豆 粕 结 束 连 续 4 周 总 持 仓 量 增 长, 出 现 小 幅

·岗位设置管理流程

春 天 来 了 静 悄 悄 的 没 有 鸟 语 没 有 花 香 到 处 死 一 样 的 沉 寂 雷 切 尔 卡 森

系统设计文档_样稿管理模块 V1.1_.doc

<4D F736F F D C4EAB9A4B3CCCBB6CABFCAFDD1A7D7A8D2B5BFCEBFBCCAD4B4F3B8D9D3EBD2AAC7F3>

目 录 页 1. 欢 迎 使 用 网 上 预 约 面 谈 访 问 系 统 新 用 户 新 用 户 登 入 帐 户 程 序 启 动 网 上 预 约 面 谈 访 问 帐 户 核 对 帐 户 的 地 址 资 料

 编号:

第 一 部 分 MagiCAD for Revit 安 装 流 程

上海证券交易所会议纪要

<4D F736F F D20BFC9B1E0B3CCD0F2BFD8D6C6CFB5CDB3C9E8BCC6CAA6B9FABCD2D6B0D2B5B1EAD7BC2E646F63>

抗 日 战 争 研 究 年 第 期

操作手册

Cybozu Garoon 3 管理员手册


世华财讯模拟操作手册

云信Linux SSH认证代理用户手册

合 并 计 算 配 售 对 象 持 有 多 个 证 券 账 户 的, 多 个 证 券 账 户 市 值 合 并 计 算 确 认 多 个 证 券 账 户 为 同 一 配 售 对 象 持 有 的 原 则 为 证 券 账 户 注 册 资 料 中 的 账 户 持 有 人 名 称 有 效 身 份 证 明 文 件

年 8 月 11 日, 公 司 召 开 2015 年 第 五 次 临 时 股 东 大 会, 审 议 通 过 了 关 于 公 司 <2015 年 股 票 期 权 激 励 计 划 ( 草 案 )> 及 其 摘 要 的 议 案 关 于 提 请 股 东 大 会 授 权 董 事 会 办 理 公

Microsoft Word - JAVA3.rtf

秦川发展第五届第三次

第 三 章 审 计 证 据 2

证券代码: 证券简称:长城电脑 公告编号:

纪律处分与程序

新, 各 地 各 部 门 ( 单 位 ) 各 文 化 事 业 单 位 要 高 度 重 视, 切 实 加 强 领 导, 精 心 组 织 实 施 要 根 据 事 业 单 位 岗 位 设 置 管 理 的 规 定 和 要 求, 在 深 入 调 查 研 究 广 泛 听 取 意 见 的 基 础 上, 研 究 提

姓名


¹ º ¹ º 农 业 流 动 人 口 是 指 户 口 性 质 为 农 业 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个 月 及 以 上 的 流 动 人 口 非 农 流 动 人 口 是 指 户 口 性 质 为 非 农 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个

Transcription:

玩 转 Object 不 理 解, 就 无 法 真 正 拥 有 歌 德 按 其 实 而 审 其 名, 以 求 其 情 ; 听 其 言 而 查 其 累, 无 使 放 悖 ( 根 据 实 际 明 辨 名 称, 以 便 求 得 真 实 情 况 ; 听 取 言 辞 后 弄 明 它 的 类 别, 不 让 它 混 淆 错 乱 ) 三 玩 转 Object 大 围 山 人 玩 转 Object...1 1. 通 过 引 用 (reference) 来 使 用 Object... 2 2. 必 须 创 建 (create) 所 有 的 Object... 3 计 算 机 存 储 系 统... 3 特 例 : 基 本 数 据 类 型 (primitive types)... 3 3. 没 有 必 要 销 毁 (destroy/delete)object... 4 变 量 的 作 用 域 (Scoping)... 4 Object 的 作 用 域...5 4. 生 成 新 的 数 据 类 型... 5 数 据 成 员 与 方 法... 6 方 法 形 式 参 数 返 回 值... 8 形 式 参 数 清 单... 8 static 关 键 词... 9 5. 注 释 与 嵌 入 式 文 档... 10 注 释 文 档... 10 注 释 文 档 的 语 法... 11 嵌 入 HTML... 12 常 见 的 标 签... 12 6.Java 编 程 格 式... 13 3-1/13

尽 管 Java 语 言 是 在 C++ 语 言 基 础 上 发 展 起 来 的, 但 是 有 别 于 C++,Java 是 一 种 纯 粹 的 面 向 对 象 语 言 (Object-oriented language) 在 像 Java 这 样 纯 粹 的 面 向 对 象 语 言 中, 所 有 事 物 都 是 Object 1. 通 过 引 用 (reference) 来 使 用 Object 在 java 语 言 中, 我 们 将 所 有 事 物 都 通 过 Object 来 描 述 而 我 们 是 通 过 引 用 来 使 用 / 操 纵 Object 的 你 可 以 将 被 操 纵 的 Object 想 象 为 一 台 电 视 机, 而 我 们 用 来 操 纵 这 个 Object 的 引 用 (reference) 就 是 电 视 遥 控 器 只 要 你 手 里 拿 着 电 视 遥 控 器, 你 就 拥 有 与 电 视 机 的 连 接 当 你 需 要 改 变 频 道 或 设 定 电 视 机 的 声 音 时, 你 实 际 上 操 作 的 是 电 视 遥 控 器 ( 亦 即 引 用 ); 当 你 希 望 在 家 里 走 动 的 同 时, 还 能 够 控 制 电 视 机 时, 你 拿 在 手 里 的 是 电 视 遥 控 器 ( 引 用 ), 而 不 是 电 视 机 本 身 值 得 注 意 的 是, 没 有 电 视 机, 电 视 遥 控 器 也 能 够 独 立 存 在 同 样 你 有 一 个 引 用 并 不 意 味 着 你 就 有 一 个 Object 如 果 你 想 声 明 一 个 字 符 串, 来 存 储 一 个 句 子 或 单 词, 你 声 明 如 下 : String s; 但 是 这 时 你 只 是 声 明 了 一 个 引 用, 而 不 是 一 个 Object 如 果 此 时 你 向 s 发 出 一 个 消 息 / 请 求, 在 程 序 运 行 时 会 产 生 一 个 错 误 1, 因 为 此 时 引 用 s 没 有 指 向 任 何 Object( 你 只 有 遥 控 器, 而 没 有 接 受 该 遥 控 器 控 制 的 电 视 机 ) 比 较 安 全 的 做 法 是, 每 当 创 建 ( 声 明 ) 一 个 引 用 时, 及 时 初 始 化 ( 及 时 建 立 它 与 Object 之 间 的 联 系 ) String s = asdf ; 在 这 里 我 们 使 用 了 Java 语 言 的 一 种 特 殊 功 能 : 字 符 串 对 象 可 以 直 接 用 带 引 号 的 字 符 串 初 始 1 如 果 s 是 自 动 变 量 或 局 部 变 量, 则 在 编 译 时 会 发 现 错 误, 告 诉 你 变 量 没 有 初 始 化 如 果 s 是 某 个 类 的 数 据 成 员, 则 在 执 行 时 产 生 错 误, 因 为 类 的 数 据 成 员 被 自 动 初 始 化 为 缺 省 值 : 引 用 的 缺 省 值 是 null 3-2/13

化 而 对 于 一 般 的 情 况, 我 们 必 须 使 用 通 用 的 初 始 化 过 程 2. 必 须 创 建 (create) 所 有 的 Object 如 何 创 建 一 个 Object? 我 们 一 般 使 用 关 键 词 new new 意 味 着 为 我 生 成 这 类 对 象 的 一 个 新 的 实 体 所 以, 上 述 例 子 中 生 成 一 个 字 符 串 的 更 加 通 用 的 做 法 是 String s = new String( asdf ); 这 句 话 的 意 思 是 : 请 利 用 字 符 串 常 量 asdf 为 我 生 成 一 个 字 符 串 对 象 (Object) Java 标 准 库 提 供 了 大 量 的 类, 同 时 你 也 可 以 编 写 自 己 的 类 实 际 上, 编 写 类 是 用 Java 语 言 开 发 程 序 的 最 主 要 的 工 作, 也 是 我 们 课 程 讲 述 的 主 要 内 容 计 算 机 存 储 系 统 当 计 算 机 程 序 运 行 时, 有 六 种 不 同 的 地 方 可 以 存 储 信 息 : 1. 寄 存 器 (Register) 2. 堆 栈 (Stack) 3. 堆 (Heap) 4. 静 态 存 储 (Static Storage) 5. 常 量 存 储 (Constant Storage) 6. 非 内 存 存 储 (Non-RAM Storage) Java 的 Object 通 过 new 生 成, 全 部 存 储 在 堆 中 特 例 : 基 本 数 据 类 型 (primitive types) Java 的 基 本 数 据 类 型 boolean, char, byte, short, int, long, float, double 的 数 据 没 有 必 要 通 过 new 3-3/13

生 成 这 些 数 据 存 储 在 堆 栈 中 ( 考 虑 到 速 度 ) Primitive type Size Minimum Maximum Wrapper type boolean - - - Boolean char 16-bit Unicode 0 Unicode 2^16-1 byte 8-bit -128 127 Byte Character short 16-bit -2^15 2^15-1 Short int 32-bit -2^31 2^31-1 Integer long 64-bit -2^63 2^63-1 Long float 32-bit IEEE754 IEEE754 Float double 64-bit IEEE754 IEEE754 Double void - - - Void 包 装 类 (Wrapper classes) 存 在 的 目 的 是 便 于 像 操 纵 一 般 对 象 那 样 操 纵 基 本 数 据 类 型 的 数 据 3. 没 有 必 要 销 毁 (destroy/delete)object 在 大 多 数 编 程 语 言 中, 变 量 的 生 命 期 是 困 扰 编 程 人 员 的 一 大 问 题 : 一 个 变 量 需 要 生 存 多 长 时 间? 如 果 你 必 须 负 责 销 毁 它, 以 达 到 释 放 内 存 的 目 的, 那 么 什 么 时 候 销 毁? 在 c 和 C++ 语 言 中, 因 为 需 要 编 程 人 员 负 责 将 变 量 所 占 据 的 内 存 归 还 给 系 统, 变 量 的 销 毁 问 题 变 成 了 编 程 人 员 的 一 大 负 担 经 常 会 因 为 编 程 人 员 忘 记 了 销 毁 变 量 而 导 致 系 统 内 存 枯 竭, 系 统 瘫 痪 变 量 的 作 用 域 (Scoping) 如 同 C 和 C++ 语 言 一 样,Java 语 言 中 变 量 的 作 用 域 由 花 括 号 控 制 比 如 int x = 12; // 只 有 变 量 x 可 用 int q = 96; // 此 时 变 量 x 和 q 均 可 使 用 // 只 有 变 量 x 可 用, 此 时 已 经 超 出 变 量 q 的 作 用 域 如 上 述 例 子 所 示, 在 一 个 范 围 / 作 用 域 内 定 义 的 变 量 只 在 那 个 作 用 域 内 存 在 3-4/13

int x = 12; int x = 96; // 语 法 错 误! 上 述 代 码 在 C 和 C++ 中 是 合 法 的, 但 是 在 Java 中 是 语 法 错 误 Object 的 作 用 域 Java 对 象 (Object) 与 基 本 数 据 类 型 的 作 用 域 不 同 当 你 用 new 生 成 一 个 Object 之 后, 该 Object 将 一 直 存 在, 直 到 Java 垃 圾 回 收 器 (garbage collector) 认 为 该 Object 已 经 没 有 人 使 用 而 将 其 回 收 为 止 比 如 : String s = new String( asdf ); 中, 引 用 s 的 作 用 域 是 代 码 中 由 花 括 号 所 决 定 的 范 围 然 而 引 用 s 所 指 向 的 Object 却 不 因 为 反 花 括 号 的 出 现 而 自 动 消 失 当 然 在 上 述 代 码 中, 显 然 该 Object 已 经 没 有 人 再 使 用, 所 以 垃 圾 回 收 器 有 可 能 将 其 回 收 如 果 将 上 述 代 码 修 改 为 String a; String s = new String( asdf ); a = s; // 此 时 在 上 个 花 括 号 范 围 内 生 成 的 String Object 还 存 在 System.out.println( String Object 的 内 容 : + a ); 那 么, 当 引 用 s 自 动 消 失 之 后, 我 们 生 成 的 String Object 还 存 在, 还 可 以 通 过 引 用 a 来 使 用 它 4. 生 成 新 的 数 据 类 型 如 果 在 Java 语 言 中 任 何 事 物 都 是 Object, 那 么 是 什 么 东 西 决 定 同 一 类 Object 的 外 观 和 行 为? 3-5/13

我 们 用 关 键 词 class 来 生 成 同 一 类 Object 的 数 据 类 型 比 如 铅 笔 我 们 可 以 用 Java 语 言 实 现 如 下 : class Pencil private String brand; private String hardness; public Pencil( String b, String h ) brand = b; hardness = h; public void draw() /* 具 体 化 法 实 现 在 这 里 */ 在 定 义 了 Pencil 这 个 新 的 数 据 类 型 之 后, 我 们 就 可 以 生 成 该 类 型 的 Object 了 : Pencil p = new Pencil( 中 华 ", HB ); 上 述 语 句 生 成 了 一 个 品 牌 为 中 华 硬 度 为 HB 的 铅 笔 数 据 成 员 与 方 法 在 面 向 对 象 程 序 开 发 过 程 中, 你 所 需 要 做 的 就 是 发 现 参 与 系 统 的 Object, 定 义 这 些 Object 的 类 型, 生 成 这 些 Object, 然 后 给 这 些 Object 发 送 消 息 一 个 Object 除 了 知 道 有 关 自 己 的 信 息 和 状 态 外, 它 还 具 有 两 类 行 为 : 它 自 己 能 够 完 成 的 行 为 和 别 人 对 它 完 成 的 行 为 上 述 信 息 和 状 态 以 类 的 数 据 成 员 的 形 式 存 在, 而 那 些 行 为 则 以 方 法 / 函 数 的 形 式 存 在 所 谓 方 法 与 C 和 C++ 语 言 中 的 函 数 一 样, 但 是 在 Java 中, 我 们 一 般 称 之 为 方 法, 意 思 是 完 成 特 定 行 为 的 方 法 当 然, 如 果 你 觉 得 方 法 叫 起 来 别 扭, 你 可 以 继 续 使 用 函 数 这 个 名 称 3-6/13

下 列 代 码 定 义 了 一 个 只 具 有 数 据 成 员 的 类 class DataOnly int i; float f; boolean b; 这 个 类 什 么 也 不 干, 因 此 是 个 特 别 无 聊 的 类 但 是 我 们 仍 然 可 以 生 成 该 类 的 Object: DataOnly d = new DataOnly(); 怎 样 访 问 该 Object 的 数 据 成 员 呢? ObjectReferenceName.member 比 如, System.out.println( d.i =, d.i ); System.out.println( d.f =, d.f ); System.out.println( d.b =, d.b ); 这 段 代 码 将 在 控 制 台 上 显 示 d.i = 0 d.f = 0.0 d.b = false 由 这 个 例 子 可 以 看 出, 当 数 据 成 员 是 基 本 数 据 类 型 时, 如 果 你 不 明 显 地 ( 显 式 地 ) 初 始 化 数 据 成 员, 那 么 这 些 数 据 成 员 将 自 动 被 初 始 化 为 缺 省 值 : 基 本 数 据 类 型 boolean false char '\u0000' byte (byte)0 short (short)0 int 0 long 0L float 0.0f double 0.0d 缺 省 值 这 个 自 动 初 始 化 过 程 只 对 数 据 成 员 有 效, 而 对 局 部 变 量 / 自 动 变 量 无 效 比 如 你 在 某 个 方 法 中 定 义 3-7/13

int x; 那 么, 自 动 变 量 x 将 不 会 被 自 动 初 始 化,x 的 内 容 将 是 一 个 随 机 值 方 法 形 式 参 数 返 回 值 在 C 和 C++ 语 言 中, 将 具 有 名 称 的 子 程 序 (subroutine) 称 为 函 数 (function), 而 在 Java 语 言 中 我 们 将 这 些 子 程 序 称 为 方 法 (method) 方 法 最 基 本 的 几 个 要 素 包 括 方 法 名 称, 形 式 参 数, 返 回 值 的 类 型, 方 法 主 体 : returntype methodname( /* 形 式 参 数 清 单 */ ) /* 方 法 主 体 */ 返 回 值 类 型 是 当 方 法 结 束 时 回 递 给 调 用 这 个 方 法 的 其 他 方 法 的 数 据 类 型 形 式 参 数 则 决 定 了 你 在 调 用 该 方 法 时 传 递 给 该 方 法 的 数 据 类 型 和 名 称 我 们 利 用 方 法 名 称 和 形 式 参 数 清 单 来 唯 一 地 区 别 不 同 的 方 法 在 java 语 言 中, 方 法 只 能 作 为 类 的 一 部 分 存 在, 方 法 也 只 能 针 对 某 个 特 定 的 Object 调 用, 我 (1) 们 称 这 个 调 用 过 程 为 给 该 Object 发 送 消 息 给 object 发 送 消 息 的 格 式 如 下 : objectreferencename.methodname( /* 要 传 递 给 方 法 的 数 据 清 单 */ ); 形 式 参 数 清 单 形 式 参 数 清 单 决 定 了 调 用 该 方 法 时 需 要 传 递 给 该 方 法 的 信 息 也 许 你 已 经 猜 到 了, 如 同 Java 中 其 他 一 切 事 物 一 样, 这 些 信 息 也 是 以 Object 的 形 式 传 递 给 方 法 的 如 我 们 前 面 讲 过 的, 传 递 的 实 际 上 是 Object 的 引 用, 而 不 是 Object 本 身 例 : int storage( String s ) return s.length() * 2; 这 个 方 法 计 算 String Object 以 字 节 为 单 位 的 长 度 可 以 看 出, 当 Object 的 引 用 作 为 形 式 参 数 传 递 到 一 个 方 法 后, 这 个 引 用 跟 一 个 正 常 的 引 用 没 有 区 别, 你 同 样 可 以 给 这 个 引 用 指 向 的 (1) 但 是 也 有 特 例, 比 如 我 们 将 要 介 绍 的 静 态 (static) 方 法 就 直 接 可 以 针 对 类 调 用 3-8/13

Object 发 送 消 息 在 这 个 例 子 中, 通 过 给 s 指 向 的 Object 发 送 消 息 length 来 获 取 该 Object 的 以 char 为 单 位 的 长 度 static 关 键 词 一 般 来 讲, 当 你 创 建 一 个 类 时, 你 在 描 述 这 个 类 的 Object 的 外 观 和 行 为 仅 仅 创 建 这 个 类, 你 并 没 有 得 到 任 何 实 际 的 东 西, 直 到 你 用 new 创 建 一 个 Object, 事 情 才 变 得 有 意 义 了 然 而, 有 两 种 情 况, 用 上 述 方 法 无 法 实 现 : 1. 你 希 望 同 一 类 的 Object 共 有 某 个 数 据 不 管 你 生 成 了 多 少 个 该 类 的 Object, 或 者 甚 至 没 有 生 成 任 何 Object, 这 个 数 据 都 存 在, 且 是 唯 一 的 2. 你 需 要 一 个 方 法, 不 与 具 体 的 Object 相 联 系 也 就 是 说, 你 需 要 一 个 方 法, 在 没 有 生 成 类 的 Object 的 情 况 下 你 也 能 够 调 用 该 方 法 比 如 Java 应 用 程 序 的 入 口 方 法 main, 在 Java 虚 拟 机 (JVM) 调 用 这 个 方 法 时, 你 还 没 有 来 得 及 / 没 有 机 会 生 成 你 的 应 用 程 序 这 个 类 的 任 何 Object 怎 么 办? Java 提 供 了 关 键 词 static 来 实 现 这 个 功 能 当 你 定 义 一 个 数 据 成 员 或 方 法 为 static 时, 意 味 着 这 个 数 据 成 员 或 方 法 不 与 该 类 的 任 何 Object 相 联 系 所 以, 即 或 是 你 从 来 没 有 生 成 该 类 的 任 何 Object, 你 仍 然 能 够 访 问 / 使 用 该 数 据 成 员 或 方 法 而 一 般 的 非 static 数 据 成 员 或 方 法, 你 只 有 在 生 成 了 一 个 Object 之 后, 才 能 通 过 该 Object 去 访 问 该 数 据 成 员 或 方 法 由 此,static 方 法 就 不 能 够 直 接 访 问 该 类 的 非 static 数 据 成 员, 原 因 是 这 些 数 据 成 员 有 可 能 还 不 存 在 例 : class StaticTest static int i = 47; static void incr() i++; 3-9/13

一 旦 定 义 了 该 类, 数 据 成 员 StaticTest.i 就 存 在 了, 无 论 你 有 无 生 成 该 类 的 Object 或 无 论 你 生 成 了 多 少 个 该 类 的 Object, 数 据 成 员 StaticTest.i 只 有 一 个 版 本, 方 法 StaticTest.incr() 也 就 可 以 调 用 了 StaticTest s1 = new StaticTest(); StaticTest s2 = new StaticTest(); 这 时,s1.i 和 s2.i 是 同 一 个 变 量, 拥 有 同 样 的 数 据 内 容 (47), 存 储 在 同 一 个 存 储 空 间 如 果 执 行 StaticTest.i = 96; 那 么, 此 时 s1.i 和 s2.i 均 改 变 为 96 静 态 方 法 StaticTest.incr() 修 改 了 静 态 变 量 StaticTest.i 的 值 ( 加 一 ) 5. 注 释 与 嵌 入 式 文 档 Java 语 言 中 有 两 类 注 释 第 一 类 是 继 承 自 C 语 言 的 注 释, 成 为 C 式 注 释, 以 /* 开 始, 以 */ 结 束, 可 以 跨 越 多 行 比 如 : /* This is a comment that continues across lines. */ 因 为 在 /* 和 */ 之 见 的 一 切 内 容 均 被 编 译 器 忽 视, 所 以, 上 述 注 释 与 下 列 注 释 相 同 /* This is a comment that continues across lines */ 第 二 种 注 释 继 承 自 C++ 语 言, 是 一 种 单 行 注 释, 以 // 开 始, 直 到 该 行 的 结 束 比 如 // This is a one-line comment 注 释 文 档 在 软 件 系 统 的 开 发 过 程 中, 编 码 非 常 重 要, 因 为 编 码 就 是 产 品, 但 是 文 档 (documentation) 管 理 同 样 重 要 好 的 文 档 可 以 提 高 软 件 的 复 用 效 果, 更 加 便 于 维 护 软 件 3-10/13

在 文 档 维 护 方 面, 常 见 的 问 题 是 在 开 发 过 程 中 如 何 有 效 地 维 护 文 档 如 果 文 档 和 编 码 是 分 开 管 理 的, 每 当 修 改 了 编 码 时, 你 就 必 须 记 得 去 打 开 文 档 文 件, 修 改 其 说 明 而 一 般 编 程 人 员 往 往 懒 得 去 做, 导 致 最 后 编 码 写 完 了, 可 是 没 有 像 样 的 文 档 Java 利 用 非 常 简 单 的 方 式 提 供 了 解 决 办 法 : 将 编 码 和 说 明 文 档 放 在 同 一 文 件 内 为 了 实 现 这 一 目 的, 我 们 需 要 特 殊 的 语 法 来 管 理 说 明 文 档, 并 需 要 特 殊 的 软 件 提 取 说 明 文 档 Java 用 Javadoc 应 用 软 件 提 取 文 件 中 的 说 明 文 档 Javadoc 的 输 出 结 果 是 HTML 文 件, 可 以 利 用 Web 浏 览 器 阅 读 注 释 文 档 的 语 法 Javadoc 命 令 以 /** 开 始, 以 */ 结 束 在 javadoc 命 令 中 可 以 插 入 HTML, 也 可 以 使 用 文 档 标 签 (doc tags) 文 档 标 签 分 为 两 类 一 类 是 独 立 标 签 (standalone tags), 另 外 一 类 是 内 嵌 式 标 签 (inline tags) 独 立 标 签 以 @ 开 始, 置 于 以 行 的 开 始 ( 它 之 前 的 空 格 和 * 被 忽 略 ), 单 独 占 据 一 行 内 嵌 式 标 签 业 以 @ 开 始, 但 是 整 个 标 签 用 花 括 号 围 起 来 注 释 文 档 分 别 出 现 在 类 变 量 方 法 的 前 方, 分 别 注 释 类 变 量 方 法 也 就 是 说, 类 的 说 明 文 档 以 Javadoc 命 令 的 形 式 出 现 在 该 类 的 前 方 ; 变 量 ( 数 据 成 员 ) 的 说 明 文 档 出 现 在 该 变 量 的 前 方 ; 方 法 的 说 明 文 档 出 现 在 该 方 法 之 前 比 如 /** A class comment */ public class DocTest /** A variable comment */ public int i; /** A method comment */ public void f() /* method body here */ Javadoc 只 处 理 public 和 protected 成 员 的 注 释 文 档, 而 忽 略 private 和 default-access ( 缺 省 访 问 控 制 ) 成 员 的 注 释 文 档 这 是 因 为 别 人 只 能 使 用 public 和 protected 成 员 当 然 如 果 需 3-11/13

要, 你 可 以 通 过 在 命 令 行 加 上 -private 来 迫 使 Javadoc 也 处 理 private 成 员 的 注 释 文 档 嵌 入 HTML Javadoc 直 接 将 HTML 命 令 复 制 到 结 果 文 件 中 去, 这 样 你 就 可 以 利 用 HTML 命 令 控 制 文 档 的 格 式 比 如 : /** */ 你 甚 至 <em> 可 以 强 调 某 些 文 字 </em>, 也 可 以 插 入 清 单 <ol> <li> 这 是 第 一 项 <li> 这 是 第 二 项 <li>item number three </ol> 但 是, 注 意 不 要 使 用 诸 如 <h1>,<hr> 这 样 的 标 题 控 制 符, 因 为 Javadoc 根 据 需 要 自 己 控 制 着 标 题, 你 的 标 题 控 制 符 会 干 扰 它 的 标 题 常 见 的 标 签 @see... 引 用 别 的 类 的 说 明 文 档 Javadoc 会 在 接 过 文 件 中 产 生 一 个 连 接 到 指 定 类 或 方 法 的 说 明 文 档 的 超 链 用 法 : @see 类 名 @see 类 名 # 方 法 名 @link 包. 类 # 成 员 标 志 @docroot @inheritdoc @version 版 本 号 码 @author 作 者 信 息 @since 必 要 的 信 息 3-12/13

@param 变 量 名 称 说 明 @return 说 明 @throws 例 外 类 型 说 明 @deprecated 6. Java 编 程 格 式 Java 语 言 的 标 识 符 由 字 母 (A-Z, a-z),_,$, 和 (0-9) 组 成, 共 计 64 个 可 选 字 符 但 是 标 识 符 首 字 不 能 以 数 字 (0-9) 开 始 标 识 符 区 分 大 小 写 关 于 编 程 格 式, 请 参 考 http://java.sun.com/docs/codeconv/index.html 总 的 来 说, 建 议 类 名 的 第 一 个 字 母 大 写, 同 一 单 词 中 其 余 字 母 小 写 如 果 类 名 由 多 个 单 词 组 成, 那 么 每 个 单 词 的 首 字 大 写, 单 词 之 间 紧 接 如 class AllTheColorsOfTheRainbow //... 对 于 别 的 除 了 类 名 以 外 的 方 法 名 数 据 成 员 名 变 量 名 对 象 引 用 名 等, 建 议 使 用 小 写 字 母 如 果 名 称 由 多 个 单 词 组 成, 则 其 余 单 词 的 首 字 大 写, 单 词 之 间 紧 接 如 int anintegerrepresentingcolos; void changethehueofthecolor( int newhue ) //... 3-13/13