新書推薦:
《
画艺循谱:晚明的画谱与消闲
》
售價:NT$
653.0
《
新民说·现实政治史:从马基雅维利到基辛格
》
售價:NT$
454.0
《
宽容是件奢侈品(人生360度·一分钟经典故事)
》
售價:NT$
203.0
《
甲骨拼合六集
》
售價:NT$
1520.0
《
视觉美食家:商业摄影实战与创意解析
》
售價:NT$
602.0
《
中国经济发展的新阶段:机会与选择
》
售價:NT$
454.0
《
DK月季玫瑰百科
》
售價:NT$
959.0
《
为你想要的生活
》
售價:NT$
301.0
|
內容簡介: |
本书不仅介绍Java语言的基础语法知识,还通过大量案例研究、编程示例,着重讲授问题求解和编程技术,如程序控制流(分支和循环)、定义类与方法、异常处理等。
|
關於作者: |
沃特·萨维奇 Walter Savitch,1969年在加州大学伯克利分校获得数学博士学位。他曾在加州大学圣地亚哥分校任教,担任计算机科学教授,在复杂性理论和并行计算模型方面做出了重要贡献。他的研究领域包括复杂性理论、形式语言理论、计算语言学等,他还撰写了许多的计算机科学教科书,涉及Pascal、Ada、C++ 和Java等编程语言,畅销不衰。肯里克·莫克(Kenrick Mock),阿拉斯加大学安克雷奇分校副教授。他还在华盛顿州立大学、波特兰州立大学和加州大学戴维斯分校任教。他教授本科计算机科学课程,包括C++入门、JavaTM、面向非程序员的Visual BasicR、算法、计算机安全和人工智能等。
|
目錄:
|
出版者的话译者序前言致谢依赖关系图第1章 计算机与Java引论11.1 计算机基础11.1.1 硬件与内存21.1.2 程序31.1.3 编程语言、编译器和解释器41.1.4 Java字节码51.1.5 类加载器71.2 浅尝Java81.2.1 Java语言的历史81.2.2 应用程序与小应用程序91.2.3 第一个Java应用程序91.2.4 编写、编译和运行Java程序131.3 编程基础141.3.1 面向对象编程141.3.2 算法171.3.3 测试与调试181.3.4 软件复用191.4 图形化编程补充读物201.4.1 一个JavaFX应用程序样例211.4.2 图形的尺寸和位置231.4.3 绘制椭圆和圆241.4.4 绘制弧25本章小结27练习28实践程序29编程项目29自测问题答案30第2章 基本的计算332.1 变量和表达式332.1.1 变量332.1.2 数据类型352.1.3 Java标识符372.1.4 赋值语句382.1.5 简单输入402.1.6 简单屏幕输出412.1.7 常量422.1.8 具名常量432.1.9 赋值兼容性442.1.10 类型强制转换452.1.11 算术运算482.1.12 括号和优先级规则502.1.13 特殊赋值操作符512.1.14 案例研究:售货机找零522.1.15 递增和递减操作符562.1.16 更多有关递增和递减操作符的讨论572.2 String类572.2.1 字符串常量和变量582.2.2 字符串连接582.2.3 字符串方法592.2.4 字符串处理622.2.5 转义字符632.2.6 Unicode字符集642.3 键盘和屏幕IO652.3.1 屏幕输出652.3.2 键盘输入672.3.3 其他输入界定符(选修)722.3.4 使用printf的格式化输出(选修)732.4 文档和样式752.4.1 有意义的变量名752.4.2 注释752.4.3 缩进772.4.4 使用具名常量782.5 图形化编程补充读物802.5.1 将样式规则应用于JavaFX应用程序802.5.2 介绍JOptionPane类812.5.3 将输入作为其他数字类型读取872.5.4 编程示例:具有窗口化IO的找零程序88本章小结90练习90实践程序92编程项目93自测问题答案94第3章 流控制—分支983.1 if-else语句983.1.1 基本的if-else语句983.1.2 布尔表达式1043.1.3 比较字符串1073.1.4 嵌套的if-else语句1113.1.5 多重分支的if-else语句1123.1.6 编程示例:给出字母等第1143.1.7 案例研究:体重指数1163.1.8 条件操作符(选修)1183.1.9 exit方法1193.2 boolean类型1203.2.1 布尔变量1203.2.2 优先级规则1213.2.3 布尔值的输入和输出1233.3 switch语句1243.4 图形化编程补充读物1303.4.1 指定绘图颜色1313.4.2 Yes或No问题的对话框134本章小结135练习136实践程序137编程项目138自测问题答案140第4章 流控制—循环1424.1 Java循环语句1424.1.1 while语句1434.1.2 do-while语句1464.1.3 编程示例:臭虫侵扰1494.1.4 编程示例:嵌套循环1544.1.5 for语句1554.1.6 在for语句中声明变量1604.1.7 在for语句中使用逗号(选修)1604.1.8 for-each语句1624.2 用循环编程1624.2.1 循环体1624.2.2 初始化语句1634.2.3 控制循环迭代次数1644.2.4 案例研究:使用布尔变量来终止循环1664.2.5 编程示例:消费热潮1684.2.6 循环中的break语句和continue语句(选修)1704.2.7 循环缺陷1724.2.8 跟踪变量1744.2.9 断言检查1754.3 图形化编程补充读物1774.3.1 编程示例:一个包含多张脸的JavaFX应用程序1774.3.2 绘制文本181本章小结182练习182实践程序184编程项目185自测问题答案188第5章 定义类和方法1935.1 类和方法定义1935.1.1 类文件和单独编译1955.1.2 编程示例:实现Dog类1955.1.3 实例变量1965.1.4 方法1985.1.5 定义void方法2005.1.6 定义有返回值的方法2015.1.7 编程示例:实现Species类的第一次尝试2055.1.8 关键词this2085.1.9 局部变量2095.1.10 块2115.1.11 基本类型参数2125.2 信息隐藏和封装2165.2.1 信息隐藏2175.2.2 前置条件和后置条件注释2175.2.3 public和private修饰符2185.2.4 编程示例:为什么实例变量应该是私有的2205.2.5 编程示例:矩形类的另一种实现2215.2.6 访问器方法和修改器方法2235.2.7 编程示例:Purchase类2255.2.8 调用方法的方法2285.2.9 封装2335.2.10 使用javadoc自动归档2355.2.11 UML类图2355.3 对象和引用2365.3.1 类类型变量2375.3.2 定义类的equals方法2425.3.3 编程示例:Species类2445.3.4 布尔值方法2465.3.5 案例研究:单元测试2475.3.6 类类型参数2495.3.7 编程示例:类类型参数与
|
內容試閱:
|
致教师欢迎阅读《Java程序设计与问题求解(原书第8版)》。本书是按照编程和计算机科学的第一门课程设计的,涵盖了编程技术和Java编程语言的基础知识,适合短至半学期,长至一学年的课程。本书不要求读者具有任何编程经验,除了高中代数之外,也不要求读者具有任何其他数学知识。对于已经上过其他编程课的学生,教师也可以用本书教授Java课程,在这种情况下,书中前几章可以布置成课外读物。本版内容更新下面列出了第8版与第7版之间的差异:纠正了错误,并且改善了可读性。Java Applet的内容从纸质版的书中移除了,但是其仍可在线获得。除了JOptionPane,图形化编程补充读物已经全部从Swing改为JavaFX,介绍了JavaFX绘制、布局、事件处理和常用的UI控件。有关Swing的内容仍可在线获得。使用事件处理器的事件驱动编程的示例是在主应用类中作为单独的类的匿名内部类,并且使用了Lambda函数。介绍了时间线和场景构建器。10个新的修订过的编程项目。使用的Java版本本书所有的代码都用Oracle Java SE 8开发工具包(JDK)进行过测试。任何导入的类都是标准类,并且都在作为Java组成部分的Java类库中,不需要任何其他的类或特殊的类库。灵活的章节顺序如果你是一位教师,那么本书可以适应你的教学,而不是让你适应本书的结构。本书并没有严格地规定你的课程必须覆盖的主题之间的顺序,可以很容易地改变教授的章节顺序。重新安排这些章节所涉及的细节在前言之后的依赖关系图中进行解释,更多的细节在每一章开头部分的“先修条件”中进行描述。提前介绍图形化编程每一章都是以图形化编程补充读物结尾的。这使得你可以选择在课程一开始就教授图形化编程和GUI编程。图形化编程补充读物的各个小节强调了使用JavaFX构建的GUI。在第8章之后,你可以转而教授有关使用Swing进行GUI编程的补充章节第13~15章,现在这几章内容都在本书的网站上。另一种方案是,你可以继续教授到第10章,中间混杂着图形化编程和更传统的编程。对于教师来说,如果倾向于推迟有关图形化编程的教学,那么可以推迟或跳过有关图形化编程补充读物的小节。涵盖问题求解和编程技术本书的设计初衷是教会学生基本的问题求解和编程技术,而不仅仅是一本有关Java语法的书。书中包含了大量的案例研究、编程示例和编程窍门。另外,许多小节还解释了问题求解和编程技术的重要性,例如循环设计技术、调试技术、样式技术、抽象数据类型和基础的面向对象编程技术,包括UML、事件驱动编程和使用类型参数的泛型编程。提前介绍类任何教授Java的课程都必须尽早讲解类,因为Java中所有事物都是类。Java程序就是类,字符串的数据类型也是类,甚至判等操作符(==)的行为也取决于它比较的是类的对象还是简单的数据项。类无法回避,要是能回避也肯定是用了那些长得离谱且异常复杂的“魔力方案”。本书对类的介绍相当早。在第1章和第2章就已经点出了类的使用,第5章讨论了如何定义类。关于类的所有基础信息(包括继承在内)在第8章的末尾进行了阐述(尽管你可以忽略第7章)。但是,有些关于类的主题(包括继承在内)可以推迟到课程后期再开始介绍。尽管本书尽早地介绍了类,但是也没有忽略传统的编程技术,例如自顶向下设计和循环设计技术。这些较老的主题可能显得不再那么光彩夺目,但是它们是所有初学者都需要了解的知识。泛型编程在讨论第12章的列表时,会向学生介绍类型参数。通过讲解ArrayList类的示例来介绍如何使用具有类型参数的类。然后,会向学生展示如何定义他们自己的包含类型参数的类。语言细节和样例代码本书教授的是编程技术,而不只是Java语言。但是,无论是学生还是教师,都不会只满足于一门不教授编程语言的介绍性编程课程。在为学生详细阐述Java语言的细节后,才能使其聚焦在更重大的主题上。为此,本书给出了对Java语言特性的完整解释,以及许多样例代码。程序是完整呈现的,包含了样例输入和输出。在许多情况下,除了书中完整的示例,在互联网上还可以获得其他完整的示例。自测问题自测问题贯穿于本书的每一章,这些问题难度不一,有些题的答案只需要一个词,而有些题却需要读者编写不那么容易完成的完整程序。在每一章的末尾都给出了所有自测问题的完整答案,包括那些需要完整程序的问题。练习和编程项目在每一章的末尾呈现的是全新的练习。因为只有教师才有权限获得答案,所以这些练习非常适合留作作业,有些甚至可以扩展成编程项目。但是,每一章也包含其他的编程项目,其中有些是这一版中新添加的。支持材料下面的材料仅供教师使用,可以从网站www.personhighered.comsrc获得:大部分练习和编程项目的解决方案。PowerPoint幻灯片。实验手册与相关的代码。联系我们我们任何时刻都欢迎你提出评论、建议、问题和纠错。请发送电子邮件到savitch.progra-mming.java@gmail.com。致学生本书旨在教授Java编程语言,更重要的是,教授基本的编程技术。本书不要求你之前具有任何编程经验,除了高中代数之外,也不要求你具有任何其他数学知识。但是,为了充分汲取本书的知识,你应该在计算机上安装好Java,以便实践书中给出的示例和技术。最好是安装最新版本的Java。如果你有编程经验你不需要具有任何编程经验就可以阅读本书,因为本书是为初学者设计的。如果你具有某种其他编程语言的编程经验,那么千万不要以为Java与你之前使用的编程语言一样。所有语言都不相同,而且即使是微小的区别,也足以给你带来问题。因此,请浏览本书的前四章,至少要阅读“回顾”部分。等到你阅读第5章时,最好是完整地阅读这一章。如果你之前用C或C++编过程,那么迁移到Java会让你痛并快乐着。乍一看,Java可能与C或C++几乎完全相同,但是,Java与这些语言差异巨大,你需要意识到这些差异的存在。附录F对Java和C++进行了比较,这有助于你看清楚这些差异到底是什么。获得Java的副本附录A提供了下载Java编译器和编程环境的网站链接。对于初学者,我们推荐使用Oracle的Java JDK作为你的Java编译器和相关的软件,并使用TextPad或DrJava作为编写Java代码的简单编辑器环境。当下载Java JDK时,要确保获取最新的版本。辅助学习工具每一章都包含了下列内容来帮助你学习相关的内容:开篇概览,包括本章目标和先修条件,以及一两段对所学内容的简介。“回顾”部分简洁地总结了Java语法的主要方面和其他重要的概念。“常见问题”部分回答了其他学生问过的问题。“牢记”部分强调了你应该牢记的重要思想。“编程窍门”部分给出了能够让你提升编程技能的方法。“疑难杂症”部分指出了你在编程时可能会犯但是应该避免的错误。“自测问题”部分测试你各个方面的知识,并在每一章章末给出了答案。实践所学知识的最佳方式之一,就是在查看答案之前先完成这些自测问题。每一章末尾都会对重要概念进行总结。本书也是一本参考书除了将本书用作教科书外,你还可以将本书用作参考书。当需要检查你已经忘记了的知识点,或者你听别人提到了但是自己还没学过的知识点时,只需查看本书的索引。许多索引项都给出了“回顾”部分的页码,翻到那一页,它包含了一个简短的强调项,你所关注的话题的要点将一览无余。通过这种方式,不但可以查看Java语言的细节,还可以查看编程技术的细节。每一章的“回顾”部分都提供了对这一章要点的扼要总结。同时,在每一章的末尾还包含对重要概念的总结。你可以用这些内容来复习每一章,或者查看Java语言的细节。
|
|