java面向对象程序设计第2版第6章-内部类与异常类

上传人:san****019 文档编号:22735552 上传时间:2021-05-31 格式:PPT 页数:16 大小:381.50KB
收藏 版权申诉 举报 下载
java面向对象程序设计第2版第6章-内部类与异常类_第1页
第1页 / 共16页
java面向对象程序设计第2版第6章-内部类与异常类_第2页
第2页 / 共16页
java面向对象程序设计第2版第6章-内部类与异常类_第3页
第3页 / 共16页
资源描述:

《java面向对象程序设计第2版第6章-内部类与异常类》由会员分享,可在线阅读,更多相关《java面向对象程序设计第2版第6章-内部类与异常类(16页珍藏版)》请在装配图网上搜索。

1、1 Java面 向 对 象 程 序 设 计 第 2版 第 6章 配 合 第 2版 例 子 源 代 码 一 起 使 用Power point 制 作 : 耿 祥 义 张 跃 平内 部 类 与 异 常 类 2 导 读 3 6.1 内 部 类 类 可 以 有 两 种 重 要 的 成 员 : 成 员 变 量 和 方 法 , 实 际 上 Java还 允 许 类 可 以 有 一 种 成 员 : 内 部 类 。 Java支 持 在 一 个 类 中 声 明 另 一 个 类 , 这 样 的 类 称 作 内 部 类 ,而 包 含 内 部 类 的 类 成 为 内 部 类 的 外 嵌 类 。 内 部 类 和 外 嵌

2、类 之 间 的 重 要 关 系 如 下 。 内 部 类 的 外 嵌 类 的 成 员 变 量 在 内 部 类 中 仍 然 有 效 , 内 部 类 中的 方 法 也 可 以 调 用 外 嵌 类 中 的 方 法 。 内 部 类 的 类 体 中 不 可 以 声 明 类 变 量 和 类 方 法 。 外 嵌 类 的 类 体中 可 以 用 内 部 类 声 明 对 象 , 作 为 外 嵌 类 的 成 员 。 内 部 类 仅 供 它 的 外 嵌 类 使 用 , 其 他 类 不 可 以 用 某 个 类 的 内部 类 声 明 对 象 。 4 例 子 1 某 种 类 型 的 农 场 饲 养 了 一 种 特 殊 种 类

3、 的 牛 , 但 不 希 望 其 他农 场 饲 养 这 种 特 殊 种 类 的 牛 , 那 么 这 种 类 型 的 农 场 就 可 以 将 创建 这 种 特 殊 种 牛 的 类 作 为 自 己 的 内 部 类 。 下 面 的 例 子 1(Example6_1.java)中 有 一 个 RedCowForm( 红牛 农 场 ) 类 , 该 类 中 有 一 个 名 字 为 RedCow( 红 牛 ) 的 内 部 类 。程 序 运 行 效 果 如 图 6.1。 5 6.2 匿 名 类 6.2.1 和 子 类 有 关 的 匿 名 类 Java允 许 我 们 直 接 使 用 一 个 类 的 子 类 的

4、类 体 创 建一 个 子 类 对 象 。 创 建 子 类 对 象 时 , 除 了 使 用 父 类 的 构 造 方 法 外 还有 类 体 , 此 类 体 被 认 为 是 一 个 子 类 去 掉 类 声 明 后 的 类体 , 称 作 匿 名 类 。 假 设 Bank是 类 , 那 么 下 列 代 码 就 是 用 Bank的 一 个 子类 ( 匿 名 类 ) 创 建 对 象 : new Bank () 匿 名 类 的 类 体 ; 6 例 子 2 下 面 的 例 子 2中 , 向 一 个 方 法 的 参 数 传 递 了 一 个 匿 名 类 的 对象 , 并 用 匿 名 类 创 建 了 一 个 对 象

5、。 运 行 效 果 如 图 6.2。 Example6_2.java 程 序 运 行 效 果 如 图 6.2。 7 6.2.2 和 接 口 有 关 的 匿 名 类 假 设 Computable是 一 个 接 口 , 那 么 , Java允 许 直 接 用 接 口 名 和一 个 类 体 创 建 一 个 匿 名 对 象 , 此 类 体 被 认 为 是 实 现 了 Computable接 口 的 类 去 掉 类 声 明 后 的 类 体 , 称 作 匿 名 类 。 下 列 代 码 就 是 用 实 现 了 Computable接 口 的 类 ( 匿 名 类 ) 创 建 对象 : new Computab

6、le() 实 现 接 口 的 匿 名 类 的 类 体 ; 例 子 3演 示 了 和 接 口 有 关 的 匿 名 类 的 用 法 ,运 行 效 果 如 图 6.3。 8 6 .3 异 常 类 所 谓 异 常 就 是 程 序 运 行 时 可 能 出 现 一 些 错 误 , 比如 试 图 打 开 一 个 根 本 不 存 在 的 文 件 等 , 异 常 处 理 将 会改 变 程 序 的 控 制 流 程 , 让 程 序 有 机 会 对 错 误 作 出 处 理 。 异 常 对 象 可 以 调 用 如 下 方 法 得 到 或 输 出 有 关 异 常的 信 息 : public String getMessa

7、ge(); public void printStackTrace(); public String toString(); 9 6.3.1 trycatch语 句 Java使 用 trycatch语 句 来 处 理 异 常 , 将 可 能 出 现 的 异 常 操 作 放在 trycatch语 句 的 try部 分 , 将 发 生 异 常 后 的 处 理 放 在 catch部 分 。 trycatch语 句 的 格 式 如 下 : 例 子 4给 出 了 trycatch语 句 的 用 法 , 程 序 运 行 效 果 如 图 6.4 try 包 含 可 能 发 生 异 常 的 语 句 catch

8、(ExceptionSubClass1 e) catch(ExceptionSubClass2 e) 10 6.3.2 自 定 义 异 常 类 我 们 也 可 以 扩 展 Exception类 定 义 自 己 的 异 常 类 ,然 后 规 定 哪 些 方 法 产 生 这 样 的 异 常 。 一 个 方 法 在 声 明 时 可 以 使 用 throws关 键 字 声 明 要 产生 的 若 干 个 异 常 , 并 在 该 方 法 的 方 法 体 中 具 体 给 出 产 生异 常 的 操 作 , 即 用 相 应 的 异 常 类 创 建 对 象 , 并 使 用throw关 键 字 抛 出 该 异 常

9、对 象 , 导 致 该 方 法 结 束 执 行 。 注 : throw是 Java的 关 键 字 , 该 关 键 字 的 作 用 就 是 抛 出 异 常 . throw和 throws是 两 个 不 同 的 关 键 字 。 11 例 子 5 People类 中 有 一 个 设 置 age的 方 法 , 如 果 向 该 方 法 传 递 小 于 1或 大 于 160的 整 数 , 方 法 就 抛 出 异 常 。 程 序 运 行 效 果 如 图 6.5。 Example6_5.java People.java IntegerException.java 12 6.4 finally子 语 句 本 节

10、 通 过 一 个 例 子 熟 悉 带 finally子 语 句 的 trycatch语 句 , 语法 格 式 如 下 : try catch(ExceptionSubClass e) finally 其 执 行 机 制 是 : 在 执 行 trycatch语 句 后 ,执 行 finally子 语 句 ,也就 是 说 , 无 论 在 try部 分 是 否 发 生 过 异 常 ,finally子 语 句 都 会 被 执 行 。但 需 要 注 意 以 下 两 种 特 殊 情 况 :如 果 在 trycatch语 句 中 执 行 了 return语 句 , 那 么 finally子 语 句 仍然 会

11、 被 执 行 。 trycatch语 句 中 执 行 了 程 序 退 出 代 码 , 即 执 行 System.exit(0);,则 不 执 行 finally子 语 句 。 13 例 子 6 例 子 6中 模 拟 向 货 船 上 装 载 集 装 箱 , 如 果 货 船 超 重 , 那 么 货船 认 为 这 是 一 个 异 常 , 将 拒 绝 装 载 集 装 箱 , 但 无 论 是 否 发 生 异常 , 货 船 都 需 要 正 点 启 航 。 运 行 效 果 如 图 6.6。 代 码 链 接 14 6.5 断 言 断 言 语 句 用 于 调 试 代 码 阶 段 。 在 调 试 代 码 阶 段

12、让断 言 语 句 发 挥 作 用 , 这 样 就 可 以 发 现 一 些 致 命 的 错 误 ,当 程 序 正 式 运 行 时 就 可 以 关 闭 断 言 语 句 , 但 仍 把 断 言语 句 保 留 在 源 代 码 中 , 如 果 以 后 应 用 程 又 需 要 调 试 ,可 以 重 新 启 用 断 言 语 句 。 使 用 关 键 字 assert声 明 一 条 断 言 语 句 , 断 言 语 句 有以 下 两 种 格 式 : assert booleanExpression; assert booleanExpression:messageException; 15 例 子 7 例 子 7

13、在 计 算 若 干 个 正 数 的 和 时 使 用 了 断 言 语 句 , 运 行 效 果如 图 6.7。 代 码 链 接 16 6.6 小 结 1 Java支 持 在 一 个 类 中 声 明 另 一 个 类 , 这 样 的 类 称 作 内 部 类 ,而 包 含 内 部 类 的 类 成 为 内 部 类 的 外 嵌 类 。2 和 某 类 有 关 的 匿 名 类 就 是 该 类 的 一 个 子 类 , 该 子 类 没 有 明显 的 用 类 声 明 来 定 义 , 所 以 称 做 匿 名 类 。3 和 某 接 口 有 关 的 匿 名 类 就 是 实 现 该 接 口 的 一 个 类 , 该 子 类没

14、有 明 显 的 用 类 声 明 来 定 义 , 所 以 称 做 匿 名 类 。4 Java的 异 常 可 以 出 现 在 方 法 调 用 过 程 中 , 即 在 方 法 调 用 过程 中 抛 出 异 常 对 象 , 导 致 程 序 运 行 出 现 异 常 , 并 等 待 处 理 。Java 使 用 trycatch语 句 来 处 理 异 常 , 将 可 能 出 现 的 异 常 操 作 放在 trycatch语 句 的 try部 分 , 当 try部 分 中 的 某 个 方 法 调 用 发 生异 常 后 , try部 分 将 立 刻 结 束 执 行 , 而 转 向 执 行 相 应 的 catch部分 。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!