00000007.htm
来自「水木清华BBS」· HTM 代码 · 共 278 行 · 第 1/2 页
HTM
278 行
和 类 型 的 参 数 来 决 定 使 用 哪 种 方 法 ,这 就 是 多 态 。 例 如 ,对 于 一 和 行 为 ,同 时 增 加 自 己 的 状 <BR>? 作 图 的 类 ,它 有 一 个 <BR>draw()方 法 用 来 画 图 或 输 出 文 字 ,我 们 可 以 传 递 给 它 一 个 字 符 串 <BR> 一 个 矩 形 、 一 个 圆 形 ,甚 <BR>至 还 可 以 再 指 定 作 图 的 初 始 位 置 、 图 形 的 颜 色 等 ,对 于 每 一 种 <BR> 现 ,只 需 实 现 一 个 新 的 <BR>draw()方 法 即 可 ,而 不 需 要 新 起 一 个 名 字 , 这 样 大 大 简 化 了 方 法 ? <BR>实 现 和 调 用 ,程 序 员 和 用 户 <BR>都 不 需 要 记 住 很 多 的 方 法 名 ,只 需 要 传 入 相 应 的 参 数 即 可 。 <BR> <BR> 通 过 方 法 重 载 ,子 类 可 以 重 新 实 现 父 类 的 某 些 方 法 ,使 其 具 <BR> 自 己 的 特 征 。 例 如 对 于 <BR>汽 车 类 的 加 速 方 法 ,其 子 类 (如 赛 车 )中 可 能 增 加 了 一 些 新 的 部 ? <BR>来 改 善 提 高 加 速 性 能 ,这 时 <BR>可 以 在 赛 车 类 中 重 载 父 类 的 加 速 方 法 。 重 载 隐 藏 了 父 类 的 方 ? <BR>,使 子 类 拥 有 自 己 具 体 实 现 <BR>,更 进 一 步 表 明 了 与 父 类 相 比 ,子 类 所 具 有 的 特 殊 性 。 <BR> <BR> 本 节 中 ,我 们 对 面 向 对 象 程 序 设 计 的 一 些 基 本 内 容 作 了 讲 ? <BR>,下 面 我 们 就 分 别 讲 述 <BR>Java是 如 何 实 现 这 些 内 容 的 。 <BR> <BR> § 6.2 类 <BR> <BR> 类 是 组 成 Java程 序 的 基 本 要 素 。 它 封 装 了 一 类 对 象 的 状 态 ? <BR>方 法 ,是 这 一 类 对 象 的 原 <BR>型 。 在 前 几 章 的 例 子 中 ,我 们 已 经 定 义 了 一 些 简 单 的 类 ,如 Helloo <BR> rldApp类 。 <BR> <BR> public class HelloWorldApp{ <BR> public static void main( String args[ ] ){ <BR> System.out.println("Hello World !"); <BR> } <BR> } <BR> 可以看出,一个类的实现包含两部分的内容: <BR> classDeclaration { <BR> classBody <BR> } <BR> <BR> <BR> 下 面 我 们 分 别 对 每 一 部 分 详 细 讲 述 。 <BR> <BR> 6.2.1 类 声 明 <BR> <BR> 一 个 最 简 单 的 类 声 明 如 下 : <BR> <BR> class className { <BR> …… <BR> } <BR> 例如: <BR> class Point{ <BR> …… <BR> } <BR> <BR> <BR> 同 时 ,在 类 声 明 中 还 可 以 包 含 类 的 父 类 ,类 所 实 现 的 接 口 以 <BR> 修 饰 符 public、 abstract或 <BR>final。 我 们 将 分 别 在 后 面 的 几 节 中 介 绍 。 <BR> <BR> 6.2.2 类 体 <BR> <BR> 类 体 中 定 义 了 该 类 所 有 的 变 量 和 该 类 所 支 持 的 方 法 。 通 常 <BR>? 量 在 方 法 前 定 义 (并 不 一 <BR>定 要 求 ),如 下 所 示 : <BR> <BR> class className { <BR> memberVariableDeclarations <BR> methodDeclarations <BR> } <BR> <BR> <BR> 下 例 定 义 了 一 个 Point类 ,并 且 声 明 了 它 的 两 个 变 量 x、 y坐 标 , <BR>? 时 实 现 init()方 法 对 x、 y赋 <BR>初 值 。 <BR> <BR> 例 6.1 <BR> <BR> class Ponit { <BR> int x,y; <BR> void init(int ix, int iy){ <BR> x=ix; <BR> y=iy; <BR> } <BR> } <BR> <BR> <BR> 类 中 所 定 义 的 变 量 和 方 法 都 是 类 的 成 员 。 对 类 的 成 员 可 以 <BR>? 定 访 问 权 限 ,来 限 定 其 它 <BR>对 象 对 它 的 访 问 ,访 问 权 限 所 以 有 以 下 几 种 :private, protected, pubi c, friendly。 我 们 将 在 § 6.6中 详 细 <BR>讨 论 。 <BR> <BR> 同 时 ,对 类 的 成 员 来 说 ,又 可 以 分 为 实 例 成 员 和 类 成 员 两 种 <BR> 我 们 在 § 6.8中 详 细 讨 论 。 <BR> <BR> 6.2.3 成 员 变 量 <BR> <BR> 最 简 单 的 成 员 变 量 的 声 明 为 : <BR> <BR> type variableName; <BR> <BR> 如 在 例 6.1中 所 声 明 的 变 量 ,int x,y; <BR> <BR> 成 员 变 量 的 类 型 可 以 是 Java中 的 任 意 数 据 类 型 包 括 简 单 类 ? <BR>、 数 组 、 类 和 接 口 。 在 一 <BR>个 类 中 ,成 员 变 量 应 该 是 唯 一 的 ,但 是 成 员 变 量 的 名 字 可 以 和 类 <BR>? 某 个 方 法 的 名 字 相 同 ,例 <BR>如 : <BR> <BR> class Point{ <BR> int x,y; <BR> int x(){ <BR> return x; <BR> } <BR> } <BR> <BR> <BR> 其 中 ,方 法 x()和 变 量 x具 有 相 同 的 名 字 。 <BR> <BR> 类 的 成 员 变 量 和 在 方 法 中 所 声 明 的 局 部 变 量 是 不 同 的 ,成 ? <BR>变 量 的 作 用 域 是 整 个 类 <BR>,而 局 部 变 量 的 作 用 域 只 是 方 法 内 部 。 <BR> <BR> 对 一 个 成 员 变 量 ,我 们 还 可 以 限 定 它 的 访 问 权 限 (见 § 6.6),? <BR>static限 定 它 为 类 变 量 (见 § <BR>6.7),或 者 用 以 下 的 修 饰 符 限 定 : <BR> <BR> final:用 来 声 明 一 个 常 量 ,如 : <BR> <BR> class FinalVar{ <BR> final int CONSTANT = 50; <BR> …… <BR> } <BR> <BR> <BR> 例 中 声 明 了 常 量 CONSTANT, 并 赋 值 为 50。 对 于 用 final限 定 的 常 <BR> ,在 程 序 中 不 能 改 变 它 <BR>的 值 。 通 常 常 量 名 用 大 写 字 母 。 <BR> <BR>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?