第6版 Java程式设计与问题解决


第6版 Java程式设计与问题解决

文章插图
Java程式设计与问题解决(第6版)【第6版 Java程式设计与问题解决】《Java程式设计与问题解决(第6版)》是2012年出版的图书,作者是WalterSavitch 。
基本介绍书名:Java程式设计与问题解决(第6版)
作者:Walter Savitch
译者: 张长富
ISBN:9787302296508
类别:计算机科学课程
定价:98元
出版时间:2012-11-23
装帧:平装
图书简介本书是一部适用于高校多个专业运用Java讲授计算机科学课程的理想教材 。本书向学生传授了面向对象的编程以及与此相关的一些重要概念,比如设计、测试与调试、编程风格、接口继承以及异常处理 。它涵盖了Java的关键特性,并在全书自始至终贯穿了对象的思想 。除了介绍小应用程式之外,本书将重点放在了讲授应用程式编程上 。图书信息ISBN:9787302296508定价:98元印次:1-1装帧:平装印刷日期:2012-11-23作者:Walter Savitch 着 张长富 等译图书前言本书用于传授Java程式语言,更为重要的是,传授基本的编程技巧 。它不要求具备任何编程经验,对数学的要求也不超过高中的简单代数 。但是,要全面享用本书的收穫,读者应该在自己的计算机上已经安装了Java,这样就能够练习给出的示例和技巧 。最好採用Java的最新版本,但版本5的Java也依然可用 。如果读者以前曾经编写过程式使用本书不需要读者具备先前的任何编程经验,本书专为初学者设计 。如果读者碰巧具备某些其他程式语言的经验,那幺不要想当然地认为Java像你已经熟悉使用的那个程式语言一样 。所有的语言都不相同,都存在差异,即使这些差别很小,但也足以带来问题 。浏览一下前四章,至少要阅读一下“扼要重述”部分 。当你阅读到第5章时,最好阅读整个章节 。如果读者以前曾经使用C或C++编过程式,那幺到Java的转换可能是既舒服又麻烦不断 。初看起来,Java几乎与C或C++相同 。但是,Java与这些语言存在很大的差异,读者需要清醒地意识到这些差异 。附录6比较了Java与C++,以便帮助读者了解这些差异是 什幺 。获取Java的拷贝附录1提供了下载Java编译器和编程环境的站点连结 。对于初学者来说,我们推荐使用Oracle的Java JDK作为你的Java编译器,相关软体和TextPad作为编写Java代码的简单编辑器环境,当下载Java JDK时,确保获取最新的可用版本 。用于学生的支持材料* 本书中程式以及额外示例的原始码* 学生实验室手册* VideoNotes:编程示例和练习的视频解决方案学习援助每一章都包含了帮助读者学习本书的数个特性:* 开篇概述:包括简要内容列表、本章目标、必备知识以及一到两段读者将学习什幺的说明 。* 扼要重述精确地总结了Java语法以及其他重要概念的主要内容 。* FAQ,或者称作“常问问题”,回答了其他学生已经提出的疑问 。* 谨记突出强调了你应该牢记在心的概念 。* 编程技巧给出了提高你的编程技能的途径 。* 疑难杂症标识了编程过程中你可能会犯——也应该避免——的潜在错误 。* 旁白提供了相关问题的简短阐述 。* 自测题全面测试你的知识,其答案放在每一章的末尾 。练习你所学东西的最佳途径之一是在查看答案之前完成自测题 。* 每一章的末尾给出了重要概念的概要 。使用MyProgrammingLab的在线上练习MyProgrammingLab是一个自学和实践工具,它由数百个小型练习组成,这些练习围绕本书的体系组织 。系统自动检测你提交代码中的逻辑和语法错误,并给出有针对性的提示,让你能够明白什幺地方发生了错误——以及为什幺发生这样的错误 。VideoNotes这些简短的循序渐进视频演示了如何从设计到编码的整个过程来解决问题 。VideoNotes支持易于导航的自主控制,包括每一个练习都具备选择、播放、重放、快进以及停止等能力 。本教材也是一部参考书除了将本书用做教材之外,你能够也应该将它用作一部参考书 。当你需要查阅某个遗忘的要点,或者听别人提及过、但你自己还没有学到的某个要点时,以索引为嚮导查阅一下 。很多索引条目都给出了“扼要重述”所在的页码 。翻到相应的页面,页面中将包含简短、醒目的条目,它给出了该主题的所有基本要点 。你可以以这种方式查阅Java语言的细节以及编程技巧的细节 。每一章的扼要重述为你提供了该章主要内容的简短概要 。并且,你能够使用这些特性複习该章内容或者查阅Java语言的细节 。图书目录第1章 计算机和Java引论11.1 计算机基础11.1.1 硬体和记忆体11.1.2 程式31.1.3 程式语言、编译器、解释器41.1.4 Java位元组代码61.1.5 类载入器71.2 品尝Java81.2.1 Java语言的历史81.2.2 应用程式和小套用程式91.2.3 第一个Java套用程式91.2.4 编写、编译和运行Java程式141.3 编程基础151.3.1 面向对象编程151.3.2 算法181.3.3 测试与调试191.3.4 软体重用201.4 图形补充材料211.4.1 一个示例图形小应用程式221.4.2 图案的大小和位置231.4.3 绘製椭圆和圆251.4.4 绘製弧形251.4.5 运行小应用程式271.5 本章小结28练习题28编程项目30自测题答案31第2章 基础计算342.1 变数和表达式342.1.1 变数342.1.2 数据类型362.1.3 Java标识符382.1.4 赋值语句402.1.5 简单输入422.1.6 简单萤幕输出432.1.7 常量442.1.8 命名常量462.1.9 赋值兼容性472.1.10 类型强制转换472.1.11 数学运算符502.1.12 小括弧和优先权 规则532.1.13 特殊赋值运算符542.1.14 增量和减量运算符592.1.15 增量和减量运算符的更多介绍602.2 String类612.2.1 字元串常量和变数612.2.2 字元串的拼接622.2.3 String方法632.2.4 字元串处理662.2.5 转义字元672.2.6 Unicode字元串682.3 键盘和萤幕的输入输出692.3.1 萤幕输出692.3.2 键盘输入722.3.3 其他输入分隔设定(选读)772.3.4 使用printf的格式化输出(选读)782.4 文档和风格802.4.1 有意义的变数名称802.4.2 注释812.4.3 缩进832.4.4 使用命名常量842.5 图形补充材料862.5.1 运用到图形小套用程式上的样式规则862.5.2 使用JFrame类创建Java GUI应用程式872.5.3 类JOptionPane概述902.5.4 以其他数值类型方式读取输入972.6 本章小结100练习题101编程项目103自测题答案105第3章 控制流:分支1103.1 if-else语句1103.1.1 基本if-else语句1103.1.2 布尔表达式1163.1.3 比较字元串1203.1.4 嵌套if-else语句1243.1.5 多分支if-else语句1263.1.6 条件运算符(选读)1333.1.7 exit方法1343.2 boolean类型1353.2.1 布尔变数1353.2.2 优先权规则1363.2.3 布尔值的输入和输出1383.3 switch语句1403.3.1 枚举1463.4 图形补充材料1473.4.1 指定绘图颜色1473.4.2 表达“是”或“否”提问的对话框1513.5 本章小结152练习题153编程项目155自测题答案156第4章 控制流:循环1604.1 Java循环语句1604.1.1 while语句1604.1.2 do-while语句1644.1.3 for语句1754.1.4 在for语句内部声明变数1804.1.5 在for语句中使用逗号(选读)1814.1.6 for-each语句1824.2 使用循环编程1834.2.1 循环体1834.2.2 初始化语句184 4.2.3 控制循环叠代次数1854.2.4 循环中的break语句和continue语句(选读)1924.2.5 循环错误1954.2.6 跟蹤变数1964.2.7 断言检查1984.3 图形补充材料1994.3.1 drawString方法2044.4 本章小结205练习题205编程项目207自测题答案211第5章 定义类和方法2165.1 类和方法定义2165.1.1 类档案和独立编译2185.1.2 实例变数2195.1.3 方法2215.1.4 定义void方法2245.1.5 定义返回一个值的方法2255.1.6 关键字this2325.1.7 局部变数2345.1.8 语句块2365.1.9 基本类型参数2375.2 信息隐藏和封装2425.2.1 信息隐藏2425.2.2 前置条件注释和后置条件注释2435.2.3 public和private修饰符2445.2.4 访问器方法和修改器方法2495.2.5 调用方法的方法2575.2.6 封装2625.2.7 使用javadoc完成自动文档2645.2.8 UML类图2655.3 对象和引用2655.3.1 类类型变数2665.3.2 为类定义相等方法2715.3.3 布尔值方法2765.3.4 类类型参数2805.4 图形补充材料2865.4.1 Graphics类2875.4.2 init方法2915.4.3 向小应用程式中添加标籤2925.5 本章小结295练习题296编程项目299自测题答案303第6章 对象和方法的更详细讨论3106.1 构造器3116.1.1 定义构造器3116.1.2 在构造器中调用方法3196.1.3 从一个构造器中调用另一个构造器(选读)3226.2 静态变数和静态方法3236.2.1 静态变数3236.2.2 静态方法3256.2.3 将main方法的任务划分为子任务3306.2.4 将main方法添加到类中3326.2.5 Math类3346.2.6 包装类3366.3 编写方法3406.3.1 分解3466.3.2 解决编译器的关注3476.3.3 测试方法3496.4 重载3516.4.1 重载基础351 6.4.2 重载和自动类型转换3536.4.3 重载和返回类型3556.5 再论信息隐藏3646.5.1 私有性泄露3646.6 将枚举看做类3686.7 包3706.7.1 包和移入3706.7.2 包名称和目录3716.7.3 名称冲突3736.8 图形补充材料3746.8.1 添加按钮3756.8.2 事件驱动编程3766.8.3 编程按钮3776.8.4 添加图示3826.8.5 改变可见性3846.9 本章小结387练习题388编程项目390自测题答案394第7章 数组4017.1 数组基础4027.1.1 创建和访问数组4027.1.2 数组细节4057.1.3 实例变数length4087.1.4 数组下标的深入介绍4107.1.5 初始化数组4137.2 类和方法中的数组4147.2.1 下标变数作为方法参量4227.2.2 整个数组作为方法的参量4247.2.3 方法main的参量4257.2.4 数组赋值和相等4267.2.5 返回数组的方法4297.3 使用数组和类编程4337.3.1 部分填充数组4407.4 排序和搜寻数组4417.4.1 选择排序4427.4.2 其他排序算法4467.4.3 搜寻数组4467.5 多维数组4477.5.1 多维数组基础4487.5.2 多维数组参数和返回值4517.5.3 多维数组的Java表示4537.5.4 不规则数组(选读)4547.6 图形补充材料4617.6.1 文本域和文本栏位4617.6.2 类JTextArea和JTextField4647.6.3 绘製多边形4657.7 本章小结467练习题468编程项目472自测题答案477第8章 继承、多态和接口4848.1 继承基础4848.1.1 派生类4858.1.2 覆盖方法定义4898.1.3 覆盖和重载4908.1.4 final修饰符4908.1.5 基类的私有实例变数和私有方法4918.1.6 UML继承图4928.2 使用继承编程4948.2.1 派生类中的构造器4948.2.2 再论this方法4968.2.3 调用覆盖方法4968.2.4 在Undergraduate中定义equals方法的另一种途径5018.2.5 类型兼容性501 8.2.6 Object类5058.2.7 更好的equals方法5078.3 多态5098.3.1 动态绑定和继承5098.3.2 使用toString的动态绑定5128.4 接口和抽象类5138.4.1 类接口5138.4.2 Java接口5148.4.3 实现接口5158.4.4 接口作为类型使用5178.4.5 扩展接口5208.4.6 抽象类5378.5 图形补充材料5398.5.1 JApplet类5398.5.2 JFrame类5398.5.3 视窗事件和视窗侦听器5428.5.4 ActionLisener接口5438.5.5 下一步做什幺5448.6 本章小结544练习题545编程项目546自测题答案549第9章 异常处理5539.1 基本异常处理5539.1.1 Java中的异常5539.1.2 预定义异常类5629.2 定义自己的异常类5649.3 异常类的更多细节5739.3.1 声明异常(把责任转移出去)5739.3.2 异常的种类5769.3.3 出错5789.3.4 多个抛出和多个捕获5789.3.5 finally语句块5849.3.6 重新抛出异常(选读)5849.4 图形补充材料5959.4.1 GUI中的异常5969.5 本章小结599练习题600编程项目602自测题答案606第10章 流和档案I/O61110.1 流和档案I/O概览61110.1.1 流的概念61210.1.2 为什幺使用档案进行I/O61210.1.3 文本档案和二进制档案61210.2 文本档案I/O61410.2.1 创建文本档案61410.2.2 添加到文本档案上61910.2.3 从文本档案读取数据62110.3 使用任意档案的技巧62310.3.1 File类62310.3.2 使用路径名称62510.3.3 File类的方法62610.3.4 定义打开流的方法62810.4 基本二进制档案I/O63210.4.1 创建二进制档案63210.4.2 将基本类型的值写入二进制档案63410.4.3 将字元串写入二进制档案63710.4.4 writeUTF的一些细节63710.4.5 读取二进制档案63810.4.6 EOFException类64210.5 对象和数组的二进制档案I/O649 10.5.1 类的对象的二进制档案I/O64910.5.2 串列化的一些细节65310.5.3 二进制档案中的数组对象65410.6 图形补充材料65610.7 本章小结662练习题663编程项目665自测题答案668第11章 递归67411.1 递归基础67411.1.1 递归是如何工作的68111.1.2 无限递归68411.1.3 递归方法与叠代方法的对比68711.1.4 返回值的递归方法68911.2 使用递归编程69211.3 本章小结705练习题705编程项目707自测题答案711第12章 动态数据结构和泛型71512.1 基于数组的数据结构71612.1.1 类ArrayList71612.1.2 创建ArrayList的实例71712.1.3 使用ArrayList的方法71812.1.4 参数化类和通用数据类型72412.2 Java集合框架72412.2.1 Collection接口72512.2.2 HashSet类72512.2.3 Map接口72712.2.4 HashMap类72712.3 连结数据结构72912.3.1 类LinkedList72912.3.2 鍊表73012.3.3 实现鍊表操作73212.3.4 隐私泄露73912.3.5 内部类73912.3.6 结点内部类74012.3.7 叠代器74112.3.8 Java Iterator接口75212.3.9 鍊表的异常处理75212.3.10 鍊表的变化75412.3.11 其他连结数据结构75612.4 泛型75612.4.1 基础75612.5 本章小结764练习题765编程项目767自测题答案771附录776附录1 得到Java776附录2 运行小应用程式776附录3 protected和包修饰符777附录4 DecimalFormat类778附录5 Javadoc781附录6 C++和Java之间的差别783附录7 Unicode字元编码786