相关热销图书推荐
·赢在用户
·CSS网站布局实录第2版
·搜索引擎营销
·Java编程思想(第4版
·CSS禅意花园
·XML HACKS 10
·JAVA JDK6学习笔
·Java编程思想(英文版
·Ajax模式与最佳实践
·Excel实战技巧精粹(
特价促销商品
您最近的浏览历史
暂无浏览历史- 出版时间:10/01/2004
- ISBN:7302090947
- 译者:张少华
- 销售状态:在销
配送说明: 成都市区免费送货上门、货到付款;四川其它地区送货上门、货到付款;全国范围内使用支付宝支付,先收货,后付款,安全方便(支付宝信任商家)。
编辑推荐
欢迎阅读本书。本书是为初级计算机科学(CS1)Java课程教材而编写的,向教师和学生提供了一些崭新的内容。CS1课程是计算机科学课程的基础。我们的主要目标是调动所有学生学习编程的积极性,无论他们原来的基础如何。学习动机激发学习的兴趣。学习动机和兴趣是学习编程的学生迈向成功的关键因素。本书是50多个学期的成功编程教学课堂记录的综合和结晶。
本书首先介绍了一些简要示例、练习和较长的编程示例。然后,列举了一些大型编程示例,它们构成了本书的主要内容。实际上,本书根据学生的要求提供素材,简单明了并具有较强的可读性。书中的大多数示例取材于课堂中学生的交互练习。
不管从事任何职业,都要求进行反复练习。学习烹饪的学员需要练习如何做出美味佳肴。初学小提琴的学员需要练习如何拉准音调。刚开始学习编程的学员必须练习如何解决问题和编写代码。本书不是一本Java示例书。书中没有简单地列出Java语法,举出示例,而是深入剖析所有概念背后的“原理”。对于首次介绍的每个主题,都阐述了关键问题的“原理”。这种方法对学习Java起到了引导作用。学生只有理解了“原理”后才会激发学习的兴趣。
过去,学习Java的初级编程人员需要掌握一门编程语言的知识。本书不要求学生具备编程经验。不过,需要有一些适当的数学背景,如高等数学的知识。
本书内容
以前Java被视为一种Web编程语言,但现在它已逐渐进入到讲授计算机科学课程的课堂中。目前,很多大学将Java用作初级编程语言课程(CS1)。Java是一种将传统的编程模式(使用非图形用户界面)与现代编程模式(使用图形用户界面(GUI))相结合的编程语言。对于这两种编程模式,本书分别进行了介绍。下面我们将简单概述一下每章的内容,然后讨论如何阅读本书。
第1章简要回顾了计算机和编程语言的历史。读者可以快速浏览并了解计算机硬件和软件方面的一些知识。本章还介绍了如何处理Java程序。另外,还介绍了两种基本的问题解决方案:结构化编程和面向对象设计。
学习完第2章后,学生将会了解Java的基本概念并为编写执行一些计算的复杂程序作好准备。第2章还介绍了本书中的一些常用术语:基本类型变量、引用变量和对象。第3章对这些术语进行了明确的定义和区分,并定制了相应的使用规则。对象是面向对象编程语言的基本实体。这一章进一步说明了对象是如何工作的。由于输入/输出是任何编程语言的基础,因此在第3章首先简单地介绍了其概念,之后进行了详细说明。第4章和第5章介绍了用于更改执行顺序流程的控制结构。
Java具有强大的且简单易用的图形用户界面(GUI)组件,可创建用户友好的图形程序。第6章介绍了各种GUI组件并给出如何在Java应用程序中使用这些组件的若干示例。由于Java是面向对象的编程语言,因此第6章的第二部分讨论了如何使用面向对象的设计方法解决不同的问题并给出了一些示例。
第7章讨论了用户定义的方法。参数传递是任何编程语言的基本概念。在这一章中列举了若干示例,其中包括一些可视图形,以帮助读者理解这一概念。为了将原始对象值作为对象传递,在该章中使用了第6章中所介绍的几个类(附录D列出了有关这些类及如何使用Java程序的详细信息。由于学习第7章可以跨过第6章,因此必要时可以在附录D中查看这些类)。建议没有编程背景的学生多花些时间学习本章。
第8章讨论了用户定义的类。在Java中,类是一种常用的重要元素。类用于创建Java程序、组相关操作,并使用户可以创建他们自己的数据类型。这一章使用大量的可视图形来说明类的对象如何操纵数据。
第9章对数组进行了说明。第10章研究了查找和排序算法。
继承是面向对象设计的一个重要方法。它促进了代码的重用。第11章讨论了继承并举出若干示例以说明如何从现有类派生类。另外,这一章还讨论了抽象类、内部类和组合。
在程序执行期间可以检测到的不希望发生的情况称为异常。例如,被零除是一个异常。Java为处理异常提供了广泛的支持。第12章说明了如何处理程序中的异常。第12章还讨论了事件处理,这一内容在第6章中有简单介绍。
第13章继续第6章的GUI组件的讨论。这一章还介绍了其他GUI组件及如何创建applet。
第14章介绍了递归。并举出若干示例以说明递归方法是如何执行的。
附录A列出了Java关键字。附录B列出了Java运算符的优先级和结合顺序。附录C列出了Unicode字符集的ASCII(美国信息交换标准代码)部分及EBCDIC(扩充的二进制编码的十进制交换码)字符集。附录D列出了如何在Java程序中使用用户定义的类。附录E介绍了本书中常用的Java类。附录F给出了部分练习题的答案。
如何阅读本书
Java是一种非常强大且复杂的语言。除了传统的(非GUI)编程之外,Java还为使用图形用户界面(GUI)创建程序提供了广泛的支持。第3章介绍了输入和输出对话框。第6章介绍了常用的GUI组件,如标签、按钮和文本字段。第13章介绍了更多的GUI组件。
可以采用两种方法阅读本书。一种是综合方法,使用该方法,读者可以边学习基本编程概念和技巧,边学习如何编写非GUI和GUI程序。另一种方法着重于先阐释非GUI编程所使用的基本编程概念,然后再阐释所包含的GUI组件。建议读者分别针对每种方法按以下顺序阅读本书:
● 综合方法:按顺序学习各章。
● 先学习非GUI编程,然后再学习GUI编程:先按顺序学习第1~5章,然后学习第7~12章和第14章。该方法跳过主要讲述GUI的第6章。学习完第1~5章、第7~12章和第14章后,再回过来学习第6章和第13章,即讲述GUI的章节。
如果选择第二种学习方法,应注意一点,即第8章和第11章中的“编程示例”最初是在未使用任何GUI组件的情况下开发的,其后这些程序被扩展为包含GUI组件。另外,如果读者跳过第6章,就可以跳过第12章的事件处理部分。第14章(递归)列出两个“编程示例”:一个是非GUI应用程序,另一个是使用GUI的程序。如果跳过第6章和第13章,就可以跳过第8章、第11章、第12章和第14章中“编程示例”的GUI部分。在学习完第6章和第13章后,即可学习第8章、第11章、第12章和第14章中“编程示例”的GUI部分。
图1显示了本书各章之间的相互关系。实线箭头表示在学习箭头尾部的章节之前必须学习箭头顶端所指向的章节。虚线箭头表示在学习箭头尾部的章节之前可以不学习箭头顶端所指向的章节。
图1 各章之间的关系图
本书特色
书中的每章都具有下列特色。这些特色对学习本书非常有帮助,并使学生可以按其步调学习本书内容。
● “本章主要内容”部分介绍了要在本章详细讨论的Java编程概念。
● “注意”部分重点说明了与章节中所介绍概念相关的重要内容。
● 200多个可视图形,丰富而详尽地说明了较难理解的概念。
● 带编号的示例使用相关代码说明了重要概念。为方便引用,对这些示例中的编程代码
进行了编号,并在后面给出“示例运行”。然后解释说明每行代码所执行的操作。
● “编程示例”部分是完整的程序,在每章末尾列出。这些示例包括“输入”、“输出”、“问题分析”、“算法设计”和“完整程序清单”等各个确切具体的阶段。
● “快速回顾”部分对每章所涵盖的概念进行了总结。
● “练习题”部分真正进一步巩固所学知识,确保学生真正掌握章节内容。
● “编程练习”部分要求学生练习编写一些较复杂的Java程序,并输出特定的结果。
本书从头到尾,通过引导的方式分阶段地介绍了各个概念。本书的编写风格简单直观,与课堂教学风格保持一致。在介绍重要概念之前,先说明必须使用某些元素的原因,然后使用示例和小型程序对这些概念进行阐述。
每章都使用两种类型的程序。第一种类型是小型程序,它们是带编号示例(例如,示例4-1)的一部分并用于解释重要概念。在这些示例中,对每行编程代码都进行了编号。通过“示例运行”列出输出结果,然后逐行分析每个语句。并对每行使用到的原理进行详细讨论。
本书的主要特点是包含了大量的程序分析,称为“编程示例”。这些“编程示例”构成了本书的骨干。
这些程序旨在向读者提供解决问题的方法并使其简单易懂。每个“编程示例”以“问题分析”开始,然后列出“算法设计”。接着用Java对每一步算法编写代码。除了讲授问题解决方法之外,这些详尽的程序还向读者演示了如何将概念应用到真正的Java程序中。本书强烈建议学生认真学习每个“编程示例”,这样才能有效地掌握Java。
每章末尾的“快速回顾”部分使学生巩固所学的知识。学习完一章后,学生可以快速地浏览这一章的要点,然后做后面的“练习题”测试自己所掌握的情况。很多读者认为“快速回顾”是在测验前复习已学章节内容的简单方法。
本书中的所有源代码和解决方案都经过了编写、编译并用Sun Java JDK 1.4进行了测试,这样可以保证这些程序的可靠性。
教学工具
当本书用于教学时可以利用下列补充材料。请参阅书后的“教辅材料申请表”索取相关材料。
电子教学手册。本书附带的教师手册包含以下内容:
● 备课的辅助教学材料,包括对授课主题的建议。
● 所有各章末尾习题的答案,包括“编程练习”。
ExamView。本书附带的ExamView是一种强大的测试软件包,使用它,教师可以创建并管理笔试、机试(基于LAN)和Internet考试。ExamView包含与本书主题相配套的数百道试题,使学生可以定制一些包含了页面索引在内的详细的学习指南,以供进一步复习使用。这些基于计算机和Internet的考试组件使学生可以通过他们的计算机参加考试,由于每次考试后都能自动进行评分,因此节省了教师的时间。
PowerPoint演示文稿。本书为每章都提供了Microsoft PowerPoint幻灯片。这些幻灯片可作为教学辅助工具供课堂演示使用,使学生可以通过网络查看章节内容,或打印出来在课堂上分发。教师可以制作授课所需的其他主题的幻灯片。
远程教学。Course Technology的得意之作就是在WebCT和Blackboard及它自己的课程增强工具MyCourse.com中提供了一些联机课程。当您将联机内容添加到课程中时,将为您添加下列多种功能:自我测试、链接、词汇表,最重要的是它提供了通向21世纪最重要信息资源的途径。无论其在联机还是脱机状态下,我们都希望学生能够充分利用这些课程。如果您想知道有关如何将远程教学引入课程的详细信息,请与当地的Course Technology销售代表联系。
源代码。从www.course.com上可以找到源代码。运行某些程序所需的输入文件也包含在这些源代码中。不过,应先将输入文件存储在软盘中。
习题答案文件。所有编程练习的习题答案文件可在www.course.com中找到。运行某些程序所需的输入文件也包含在习题答案文件中。不过,应先将输入文件存储在软盘中。
内容简介
关注过此商品的顾客还关注过
目录介绍
第1章 计算机和编程语言概述 1
1.1 简介 1
1.2 概述计算机的发展史 2
1.3 计算机系统的描述 2
1.3.1 硬件 2
1.3.2 软件 4
1.4 计算机语言 4
1.5 编程语言的发展史 5
1.6 Java程序的执行 6
1.7 规划分析-编码-执行周期中出现的问题 8
1.8 编程方法 12
1.8.1 结构化编程 12
1.8.2 面向对象编程 12
1.9 快速回顾 13
1.10 练习题 14
第2章 Java的基本元素 16
2.1 Java程序的基础知识 17
2.1.1 特殊字符 17
2.1.2 关键字 18
2.1.3 标识符 18
2.2 数据类型 19
2.3 算术运算符和运算符的优先级 22
2.4 表达式 25
2.5 类型转换(强制转换) 27
2.6 String类 28
2.7 输入 31
2.7.1 为已命名常量和变量分配内存 31
2.7.2 对变量赋值 32
2.7.3 保存和使用表达式的值 34
2.7.4 声明和初始化变量 35
2.7.5 输入(读)语句 35
2.8 递增运算符和递减运算符 42
2.9 字符串和运算符+ 44
2.10 输出 45
2.11 包、类、方法和import语句 51
2.12 创建Java应用程序 52
2.13 编程风格和方式 55
2.13.1 语法 56
2.13.2 文档 57
2.14 更多的赋值语句 59
2.15 编程示例:换算长度 60
2.15.1 问题分析和算法设计 60
2.15.2 变量 61
2.15.3 已命名常量 61
2.15.4 主算法 61
2.15.5 综合 62
2.16 编程示例:货币单位换算 64
2.16.1 问题分析和算法设计 64
2.16.2 变量 65
2.16.3 已命名常量 65
2.16.4 主算法 65
2.17 快速回顾 68
2.18 练习题 70
2.19 编程练习 77
第3章 对象和输入/输出 79
3.1 对象和引用变量 79
3.2 在程序中使用预定义的类和方法 82
3.3 String类 84
3.4 输入/输出 91
3.4.1 利用对话框进行输入/输出 91
3.4.2 令牌化字符串 96
3.4.3 格式化小数数字的输出 99
3.5 文件输入/输出 101
3.5.1 从文件输入(读取)数据 102
3.5.2 将输出存储(写入)到文件 102
3.6 编程示例:售电影票和向慈善机构捐赠 104
3.6.1 问题分析和算法设计 104
3.6.2 变量 105
3.6.3 格式化输出 106
3.6.4 主算法 106
3.6.5 完整的程序清单 107
3.7 编程示例:学生分数 109
3.7.1 问题分析和算法设计 109
3.7.2 变量 109
3.7.3 主算法 110
3.8 快速回顾 112
3.9 练习题 113
3.10 编程练习 115
第4章 控制结构I 118
4.1 控制结构 118
4.2 关系运算符 119
4.3 关系运算符和基本数据类型 120
4.4 字符串比较 122
4.5 逻辑(布尔)运算符和逻辑表达式 125
4.6 优先顺序 126
4.6.1 快速求值法 130
4.6.2 boolean数据类型和逻辑(布尔)表达式 131
4.7 选择结构:if和if...else语句 131
4.7.1 单选 132
4.7.2 双项选择 134
4.7.3 复合(Block of)语句 137
4.7.4 多项选择:嵌套的if语句 138
4.7.5 将if...else语句与if语句进行比较 141
4.7.6 条件运算符(? :) 141
4.8 switch语句 142
4.9 编程示例:有线电视公司的收费单 148
4.9.1 问题分析和算法设计 148
4.9.2 变量 149
4.9.3 已命名常量 149
4.9.4 公式 149
4.9.5 主算法 150
4.10 快速回顾 153
4.11 练习题 154
4.12 编程练习 159
第5章 控制结构II 162
5.1 为什么需要重复执行语句 162
5.2 while循环(重复)结构 163
5.2.1 计数器控制的while循环 166
5.2.2 标记控制的while循环 168
5.2.3 标志控制的while循环 173
5.2.4 EOF控制的while循环 174
5.3 编程示例:经常账户余额 175
5.3.1 问题分析和算法设计 176
5.3.2 变量和对象 176
5.3.3 已命名常量 178
5.3.4 主算法 179
5.4 编程示例: 斐波纳契数列 184
5.4.1 问题分析和流程设计 185
5.4.2 变量 185
5.4.3 主算法 185
5.5 for循环(重复)结构 188
5.6 编程示例:分类数字 193
5.6.1 问题分析和算法设计 193
5.6.2 变量 194
5.6.3 主算法 194
5.7 do...while循环(重复)结构 197
5.8 break语句和continue语句 200
5.9 嵌套控制结构 202
5.10 快速回顾 205
5.11 练习题 206
5.12 编程练习 217
第6章 图形用户界面和面向对象的设计 220
6.1 图形用户界面组件 220
6.1.1 创建窗口 224
6.1.2 JFrame 224
6.1.3 获得对内容窗格的访问权 228
6.1.4 JLabel 229
6.1.5 JTextField 232
6.1.6 JButton命令按钮 235
6.2 编程示例:温度换算程序 242
6.2.1 问题分析、GUI设计和算法设计 242
6.2.2 变量、对象和命名常量 243
6.2.3 完整的程序清单 247
6.3 面向对象的设计 249
6.4 实现类和操作 255
6.5 快速回顾 257
6.6 练习题 258
6.7 编程练习 260
第7章 用户定义的方法 262
7.1 预定义方法 263
7.2 用户定义的方法 267
7.2.1 返回值的方法 267
7.2.2 return语句 270
7.2.3 最终程序 273
7.3 编程示例:回文数 274
7.4 程序的执行流程 277
7.5 编程示例:最大数 278
7.6 void方法 280
7.7 将基本数据类型的变量作为参数 286
7.8 将引用变量作为参数 287
7.8.1 参数和内存分配 290
7.8.2 谨慎使用作为参数的String类型的引用变量 290
7.8.3 类StringBuffer 293
7.9 类中标识符的作用域 300
7.10 方法重载概述 302
7.11 编程示例:数据比较 303
7.11.1 问题分析和算法设计 303
7.11.2 变量(方法main) 304
7.11.3 方法calculateAverage 305
7.11.4 局部变量(方法calculateAverage) 305
7.11.5 方法PrintResult 306
7.11.6 主算法:方法main 307
7.11.7 条形图 312
7.11.8 方法PrintResult 312
7.12 快速回顾 314
7.13 练习题 315
7.14 编程练习 324
第8章 用户定义的类和ADT 330
8.1 类 330
8.1.1 构造函数 333
8.1.2 统一的建模语言图 334
8.1.3 变量声明和对象实例化 334
8.1.4 访问类成员 336
8.1.5 对类执行的内置操作 337
8.1.6 赋值运算符和类 337
8.1.7 类的作用域 339
8.1.8 方法和类 339
8.1.9 Clock类的构造函数和一般方法的定义 339
8.2 复制构造函数 352
8.3 类和toString方法 352
8.4 类的静态成员 353
8.5 Finalizer方法 356
8.6 创建自己的包 356
8.7 this引用 360
8.8 内部类 364
8.9 抽象数据类型 364
8.10 编程示例:糖果机 365
8.10.1 问题分析和算法设计 366
8.10.2 实例变量 366
8.10.3 方法 366
8.10.4 实例变量 369
8.10.5 方法 369
8.10.6 主程序 373
8.10.7 糖果机:创建一个GUI 377
8.10.8 主程序 379
8.10.9 事件处理 380
8.11 快速回顾 386
8.12 练习题 387
8.13 编程练习 392
第9章 数组 395
9.1 为什么需要数组 395
9.2 数组 396
9.2.1 声明数组的其他方法 397
9.2.2 访问数组元素 398
9.2.3 在程序执行时指定数组的大小 400
9.2.4 数组和实例变量length 401
9.2.5 一维数组的处理 401
9.2.6 在声明数组时对数组进行初始化 405
9.2.7 数组索引出界异常 405
9.2.8 特别注意:赋值运算符、关系运算符和数组 405
9.2.9 将数组作为方法的参数 408
9.3 平行数组 412
9.4 对象数组 412
9.5 二维数组 414
9.5.1 访问数组元素 416
9.5.2 声明时初始化二维数组 418
9.5.3 二维数组的处理 419
9.5.4 将二维数组作为参数传递给方法 424
9.6 多维数组 426
9.7 编程示例:文本处理 427
9.7.1 问题分析和算法设计 428
9.7.2 主算法 430
9.8 快速回顾 432
9.9 练习题 433
9.10 编程练习 436
第10章 数组和字符串的应用 441
10.1 列表处理 441
10.1.1 查找 441
10.1.2 排序列表:选择排序 443
10.1.3 对有序列表进行顺序查找 449
10.1.4 二分查找法 451
10.2 类Vector 455
10.3 编程示例:选举结果 461
10.4 再次学习类String 475
10.5 编程示例:pig latin字符串 479
10.5.1 问题分析和算法设计 480
10.5.2 主算法 482
10.6 快速回顾 485
10.7 练习题 485
10.8 编程练习 487
第11章 继承和组合 489
11.1 继承 489
11.1.1 在子类中使用超类的方法 491
11.1.2 超类和子类的构造函数 496
11.1.3 类的保护成员 503
11.2 类Object 507
11.3 Java流类 508
11.4 超类和子类的对象 509
11.5 抽象方法和类 514
11.6 接口 517
11.7 组合 518
11.8 编程示例:成绩单 523
11.8.1 第I部分:学生成绩单(控制台显示) 523
11.8.2 问题分析和算法设计 525
11.8.3 主程序 539
11.8.4 第Ⅱ部分:学生成绩单(GUI设计) 544
11.8.5 主程序 550
11.9 快速回顾 555
11.10 练习题 556
11.11 编程练习 562
第12章 处理异常和事件 565
12.1 Java异常的层次 565
12.2 Java的Exception类 568
12.3 检查和非检查异常 570
12.4 处理程序中的异常 571
12.4.1 try/catch/finally块 571
12.4.2 catch块的顺序 572
12.4.3 Exception类和instanceof运算符 576
12.4.4 重新抛出和抛出异常 580
12.5 printStackTrace方法 584
12.6 异常处理技术 586
12.6.1 终止程序 586
12.6.2 修复错误并继续执行 586
12.6.3 记录错误并继续执行 587
12.7 创建自己的异常类 587
12.8 事件处理 590
12.9 编程示例:计算器 595
12.10 快速回顾 602
12.11 练习题 604
12.12 编程练习 607
第13章 高级GUI和图形 609
13.1 applet 612
13.2 类Font 615
13.3 类Color 618
13.4 类Graphics 623
13.5 其他GUI组件 633
13.5.1 JTextArea 633
13.5.2 JCheckBox 638
13.5.3 JRadioButton 644
13.5.4 JComboBox 650
13.5.5 JList 654
13.6 布局管理器 660
13.6.1 FlowLayout 660
13.6.2 BorderLayout 663
13.7 菜单 665
13.8 键盘和鼠标事件 667
13.8.1 键盘事件 668
13.8.2 鼠标事件 670
13.9 编程示例:Java Kiosk 677
13.10 快速回顾 685
13.11 练习题 685
13.12 编程练习 687
第14章 递归 690
14.1 递归定义 690
14.1.1 直接和间接递归 692
14.1.2 无限递归 692
14.2 使用递归解决问题 693
14.3 递归或迭代哪一个更好 702
14.4 编程示例:将一个数从十进制转化为二进制 703
14.5 编程示例:Sierpinski Gasket图形 705
14.6 快速回顾 709
14.7 练习题 710
14.8 编程练习 712
附录A Java保留字 717
附录B 运算符优先级 718
附录C 字符集 720
附录D 程序包和用户定义的类 723
附录E Java类 733
附录F 部分练习题的答案 789
(查看所有有关此商品的评论)















