Java 序设计:面向工程和科学人员(第2版)——国外经典教材·计算机科学与技术

Java 序设计:面向工程和科学人员(第2版)——国外经典教材·计算机科学与技术 - 图书城
作者:
(美)查普曼 著,敖富江
ISBN:
9787302099413 , 7302099413
出版社:
出版日期:
2005-5-1
定价:
78.00
¥60.60元 78折 去卓越网购买
¥66.30元 85折 去卓越网购买
内容提要 :
    本书集中了作者在国防和地理学领域编写、维护大型程序的经验。本书包含一些非常有用的教学特色,这些特色能够增强您的理解能力。
  本书集中了作者在国防和地理学领域编写、维护大型程序的经验。编写大型、可维护程序的策略和技术与初级工程人员在学校中学习的编程方式完全不同。维护和修改大型程序令人难以置信的巨额开销,要求这些程序的可读性强、可维护性高。Java编程语言满足了这个需求。它的平台无关性使得在计算机间移植程序非常容易,其简单的(相对于C语言)语法规则和严格的面向对象方式满足了编写整洁程序的要求。
  本书将讲授Java语言的基础知识和一种非常良好的编程风格,采用该风格可以编写出可维护性更高的程序。
编辑推荐 :
    本书系统地介绍了Java编程语言、结构化编程技术等方面的知识,并提供了一引起优秀的编程风格。
  本书特色:
  ◆对第1版中的内容进行重新安排,使得全书结构更为科学。
  ◆删除了第1版中用到的很多类——本版几乎完全使用Java SDK 1.4中的标准类。
  ◆介绍了利用JObjectPane类创建的简单GUI输入和输出。
  ◆本书从一开始就强调问题求解的方式,并给出厂大量示例,以便初学者在学习Java编程时打下坚实的基础。
  ◆本书白第3章起就一直采用自顶向下的程序设计方法。
  ◆本书合作站点提供了互动式学习方案,有助十提高读者的编程技能。
作者简介 :
    Stephen J.chapman于1979年获得佛罗里达中央大学的工程科学硕士学位,随后获得了休斯顿莱斯大学数字信号处理专业的博士学位。chapman曾从事过多个高级军用系统和工业系统的开发,随后一直从事Java编程有着丰富的经验和独到的见解。他所编写的Java for Engineers and sciemntists第1版受到 众多程序员的青睐。   敖富江,国防科技大学计算机学院硕士、机电工程与自动化学院博士,曾参与多个大型系统的设计,对数据库、数据仓库、数据挖掘、数据结构、程序设计、网络安全等有着深入的研究和实战经验,并在国内外期刊上发表过多篇相关论文,还翻译过多本有关程序设计和网络安全方面的科技图书。
目录 :
第1章 计算机和Java编程语言
 1.1 计算机概述
  1.1.1 CPU
  1.1.2 主存储器和辅助存储器
  1.1.3 输入输出设备
 1.2 计算机中的数据表示
  1.2.1 二进制数值系统
  1.2.2 二进制数值的八进制和十六进制表示
  1.2.3 存储器中的数据类型
 1.3 计算机语言
 1.4 Java编程语言
 1.5 Java的基本元素
 1.6 对象、方法和类
 1.7 小应用程序和应用程序
 1.8 第一个Java应用程序
 1.9 编译和执行Java程序
 1.10 小结
 1.11 练习
第2章 Java的基本元素
 2.1 Java的命名方法
 2.2 常量和变量
  2.2.1 整型常量和变量
  2.2.2 浮点常量和变量
  2.2.3 布尔常量和变量
  2.2.4 字符常量和变量
  2.2.5 保持常量的一致性
 2.3 字符串
 2.4 赋值语句和算术运算
  2.4.1 整数运算
  2.4.2 浮点运算
  2.4.3 运算层次
  2.4.4 操作数的数值提升
  2.4.5 赋值转换和强制转换
 2.5 赋值运算符
 2.6 递增和递减运算符
 2.7 数学方法
 2.8 标准输入和输出
  2.8.1 使用标准输出流
  2.8.2 使用标准输入流读入字符串
  2.8.3 使用标准输入流读入数值和布尔值
 2.9 问题示例
 2.10 调试Java程序
 2.11 小结
 2.12 良好的编程习惯概述
 2.13 练习
第3章 分支结构和程序设计
 3.1 程序设计技术概述
 3.2 使用伪代码和流程图
 3.3 关系运算符与逻辑运算符
  3.3.1 关系运算符
  3.3.2 逻辑运算符
 3.4 选择结构
  3.4.1 if结构
  3.4.2 if/else结构
  3.4.3 在一个if结构中执行多条语句
  3.4.4 使用if结构的示例
  3.4.5 if结构中的相等测试
  3.4.6 嵌套if结构
  3.4.7 条件运算符
  3.4.8 switch结构
 3.5 GUI输入和输出
 3.6 小结
 3.7 良好的编程习惯概述
 3.8 练习
第4章 循环结构
 ……
第5章 一维数组、文件访问和绘图
第6章 方法
第7章 类和面向对象编程
第8章 字符串
第9章 继承、多态性和接口
第10章 异常和增强的文件I/O
第11章 多维数组
第12章 Java绘图功能介绍
第13章 基本图形用户界面
第14章 额外的GUI组件
第15章 小应用程序
第16章 输入和输出
附录A ASCII字符集
附录B 运算符优先级表
附录C 测试答案
前言:
本书的目标是向工程和科学人员提供Java编程语言、结构化编程技术等方面的知识,并提供一些良好的编程习惯。 Java是一门相对较新的编程语言,自出现后就迅速地占领了编程界。它具有多个优点。其中,一个主要的优点是它提供了几乎完全的平台无关性。这样,为某一台计算机编写的应用程序很可能不需要作任何改动,就可以在另一台计算机上正确运行。人们能够编写在公司的所有计算机上都能运行的简单应用程序,无论这些计算机是PC、Mac计算机,还是Unix工作站。第二个主要的优点是Java的语法规则与C语言的相类似,但它摒弃了C语言的很多非常模糊和凌乱的特征。类似于C语言的语法规则使得它对于众多程序员来说,..
书摘:
书摘

前言   本书的目标是向工程和科学人员提供Java编程语言、结构化编程技术等方面的知识,并提供一些良好的编程习惯。
  Java是一门相对较新的编程语言,自出现后就迅速地占领了编程界。它具有多个优点。其中,一个主要的优点是它提供了几乎完全的平台无关性。这样,为某一台计算机编写的应用程序很可能不需要作任何改动,就可以在另一台计算机上正确运行。人们能够编写在公司的所有计算机上都能运行的简单应用程序,无论这些计算机是PC、Mac计算机,还是Unix工作站。第二个主要的优点是Java的语法规则与C语言的相类似,但它摒弃了C语言的很多非常模糊和凌乱的特征。类似于C语言的语法规则使得它对于众多程序员来说,似曾相识,因此更容易接受。Java相对于C来说是一种提高,如Java将字符串作为对象来处理,并使用一组标准的方法集操作该对象。而在C语言中,则使用指针来操作字符串,这种方式非常容易出错。
  Java的第三个主要优点是它的面向对象性,这使得使用Java编写的代码可以在多个应用程序间更具可重用性。为一个应用程序编写的类和方法可以不加修改地应用于另一个应用程序中,因为对象中数据和方法的封装方式阻止了所不期望的应用程序间的交互。
  Java的第四个优点是它具有设备无关性的图形应用。而C和Fortran等编程语言不提供设备无关性的图形应用,因此程序员必须关心用于显示图形的硬件的特定细节。C等编程语言的定义不包含“在较高层次处理图形的标准API函数”。相反,Java的Swing图形类则提供了一种较高层次的抽象,在所有的Java应用中,该抽象都是相似的,这实现了设备无关性的图形应用。
  Java的最后一个优点在于它是免费的。Sun公司提供了一个免费的Java软件开发包,可以通过它的Web站点(I/O系统的一个小子集来避免这个问题,在第16章中再详细介绍Java的I/O系统。
  Java的另外一个不足在于它的非常复杂的应用编程接口(API)。但这是Java的灵活性和功能强大性的另一个侧面反映。标准的API能够使得程序员以平台无关性的方式完成很多工作,但学习一个复杂的API会花费较长的时间。有些教科书通常向初学者隐藏Java的复杂性,只是在开始的章节中使用一些用户自定义的简单类,直到学习者具有足够的编程经验,才能够彻底理解Java的含义。很多导师和学生不认同这种方式,本书则满足了他们的需求。除了第5章中介绍的用于显示工程数据的绘图类外,本书中使用的所有类都是标准Java SDK 1.2版或更新版的一部分。但使用这些类只是临时性的,因为在第12章中介绍了使用标准Java SDK编写绘图类的方法。
  本书概述
  本书集中了作者在国防和地理学领域编写、维护大型程序的经验。编写大型、可维护程序的策略和技术与初级工程人员在学校中学习的编程方式完全不同。维护和修改大型程序令人难以置信的巨额开销,要求这些程序的可读性强、可维护性高。Java编程语言满足了这个需求。它的平台无关性使得在计算机间移植程序非常容易,其简单的(相对于C语言)语法规则和严格的面向对象方式满足了编写整洁程序的要求。本书将讲授Java语言的基础知识和一种非常良好的编程风格,采用该风格可以编写出可维护性更高的程序。
  让学生们认识到在程序设计过程的早期阶段就投入大量的精力,以使得程序具有更好的可维护性,是非常困难的。类的划分必须非常简单、自然,这样就能够在较短的时间完成类的编写,并且在未来很长一段时间内不需要对其进行维护。由于多数项目非常简单,通常,学生们能够即时地编写出程序代码。学生们通过一个课时的学习就能够演示所有的程序语句,通过所有的测试,但这样无法养成开发大型项目所需的良好编程习惯。
  本书从一开始就以良好的编程风格讲授Java编程,该风格适用于大型项目。本书强调在编写程序代码前履行一个详细设计过程的重要性,并强调使用自顶向下的设计技术,将程序划分为多个逻辑部分(类和方法),可以独立地实现这些部分①。本书通过在后面介绍的示例中嵌入前面示例中的类和方法来演示对象的可重用性。最后,本书强调了在程序发布之前,使用多个不同的输入数据集完整地测试整个程序的重要性。
  本书尝试以交互的方式提供学习内容,在本书的Web站点上提供了书中所有示例的源代码,并鼓励您下载、运行和修改这些源代码。某些章节后面的练习是以这些示例的内容为基础的。该站点中还包含了在某些练习中用到的绘图包。
  本书也面向大多数工程人员,提供入门性的编程课程结构。通常这种课程是“Introduction to Engineering Problem Solving”课程范围内的一个模板,而学习具体编程语言的时间是非常有限的。这种课程通常讲授简单的过程性编程,采用的编程语言是Fortran、C、Basic或Pascal等,而较高级的内容则在另外一门独立的课程中介绍。本书的第2-6章介绍了过程化编程,可以作为这种入门性课程的基础。您可以通过一门编程语言学习结构化的编程技术,例如Pascal语言,并且这种技术相对于语言本身来说更具有实用价值。另外,在第5章中初学者可以学会如何编程实现绘图,而在标准的Fortran、C、Basic或Pascal等语言中这是无法实现的。
  本书内容安排
  翻一翻其他的Java书籍,就可以发现大多数都超过1000页,其中大部分篇幅都在介绍如何使用Java API类。本书则采取一种不同的方式,仅仅考虑Java API的一个用于科学计算和显示结果的较小子集。例如,主要介绍了具有现代特征的Java2D图形和Swing图形用户界面,完全忽略了过去显示数据的方式。这样做能够将更多的篇幅集中于编程技术和技术问题求解上,而书的篇幅却只有其他同类书籍的一半。
  第1章介绍了Java的一些应用,以演示本书中介绍的所有基本规则。这些应用非常适合于介绍基本规则,因为它们非常简单,并且不掩盖示例所演示的知识点。本书逻辑性较强,介绍了编程语言基础(第2-4章)、数组(第5章)、方法(第6章)、类(第7章)、字符串(第8章),以及面向对象编程的特征。第12-14章中介绍了数据的图形显示和设备无关性显示,第15章简短地解释了小应用程序,本书在第16章总结了Java I/O系统方面的内容。
  本书特色
  本书主要强调如何以适当的方式编写出可靠的Java程序。这些特色对于学习Java的人员来说很有用。主要包括:
  1. 强调问题求解
  本书从开始就开发并运行了一个具有实际意义的示例,这个示例解决了特定工程环境中的问题。本书强调解决语言中遇到的问题,仅仅引入了能够使程序正常执行所需要的最少的Java类。本书首先介绍了一个能够解决特殊问题的Java程序,而不是设计一个在Web浏览器中执行的小应用程序。在后续的章节中陆续地引入了数组、字符串、绘图,以及详细的类库等知识。
  2. 强调交互式学习
  本书中所有的示例都可以通过本书的Web站点下载。我们鼓励您下载并运行这些示例。另外,每章后面的练习需要您修改并增强代码的功能。我们鼓励您在程序中重用这些组件。
  3. 强调强类型化和数据字典
  Java类和方法中的每一个变量和引用都必须经过精确定义,因此强类型化是该语言的一个内在特征。本书强调在每个方法中精确地声明每一个变量和引用,并且强调制作数据字典的重要性。数据字典描述了每个变量的特定目的,利用它可以使得代码清晰、易理解。
  4. 强调自顶向下的设计方法
  第3章中引入了自顶向下的设计方法,本书自始至终都使用了该设计方法。这种方法要求您在编写代码前首先应当思考适当的程序设计方法。该方法强调在开始工作之前,要清晰地定义所需要解决的问题,以及所需要的输入输出。一旦问题被适当地定义后,就可以将它划分为一些独立的类,以表示程序中具体的对象,并使用方法来表示这些对象的行为。最后,本书强调测试整个过程的所有阶段的重要性,包括分别测试所有的类和方法,以及测试最终产品。其中,给出了一些示例,这些示例在某些数据集中能够正确地工作,而在其他数据集中却无法正常工作。
  在逐步细化的过程中,引入了伪代码和流程图,并且几乎在所有的示例中都使用了伪代码。
  本书中介绍的设计过程可以概述如下:
  (1) 确定用户需求
  (2) 分析并分解问题
  (3) 详细设计
  (4) 实现:将算法转换为具体的Java语句
  (5) 测试
  5. 强调Java类库
  Java的一个巨大优点是它包含了大量的类库(程序包)。在编写Java程序时,可以使用这些类库实现很多功能。当编译器厂商已经提供了实现某个功能的类和方法后,您再去重新编写代码实现该功能是没有任何意义的。Java中对象的可重用属性使得编程更加快捷、简单、可靠。本书强调Java语言所固有的可重用性优点。
  6. “良好的编程习惯”框
  为了便利您阅读本书,书中以突出显示的方式给出了一些良好的编程习惯。另外,在每一章的结尾处重新概括了该章中介绍的所有编程习惯。一个“良好的编程习惯”框的样式如下所示:
  良好的编程习惯
  对于每一个结构体,都缩进两到三个空格,以提高程序代码的可读性。
  7. “编程时易犯的错误”框
  这种框强调了一些易出现的错误。一个“编程时易犯的错误”框的示例如下:
  编程时易犯的错误
  在while语句后面添加一个分号,将产生逻辑错误。Java将能够编译并执行这个程序,但该程序可能会出现死循环。
  教学特色
  本书包含一些非常有用的教学特色,这些特色能够增强您的理解能力。每一章提供了一到两个小测试,并且在附录C中提供了这些测试的答案。这些小测试可以用来测试您的理解能力。另外本书还提供了大约250个章节练习题,本书的Web站点中提供了这些练习题的答案。在所有章节中,使用突出显示的“良好的编程习惯”框给出了一些良好的编程习惯,并使用“编程时易犯的错误”框给出了易出现的错误。每一章的结尾处提供了该章的小结和良好的编程习惯的概述。最后,通过本书的Web站点还可以下载书中所使用的所有特定类。
  设置CLASSPATH环境变量
  为了使用特定的绘图类JPlot2D,您必须首先设置CLASSPATH环境变量,这样,Java编译器才能够找到该程序包。这个变量必须包含类路径结构的父目录。例如,如果程序包出现在目录“C:\packages”下的子目录中,则CLASSPATH变量必须包含目录“C:\packages”。
  在不同的操作系统中,环境变量的设置方式是不同的。在Windows NT 4.0/2000/ XP中,环境变量的设置是通过“控制面板”中的“系统”选项来完成的。详情请参阅Windows的帮助系统。
  在Windows 95/98中,可以在autoexec.bat文件中设置CLASSPATH环境变量,设置该变量的命令如下所示:
  set CLASSPATH=.;c:\packages
  如果该文件中已经存在了一个CLASSPATH,则可以在该路径后面添加一个分号(;),并在分号后面添上“c:\packages”。
  对于运行C 命令解释程序的Linux和Unix操作系统,可以使用文本编辑器打开.login文件,并添加如下命令行来设置类路径:
  setenv CLASSPATH.:$HOME/ packages
  如果.login文件中已经存在CLASSPATH,则在其后添加一个冒号(:),并紧跟着添加“$HOME/ packages”。
  对于运行Bourne或Korn 命令解释程序的Linux和Unix操作系统,类路径的设置是通过使用文本编辑器打开.profile文件,并添加如下命令行来实现的:
  CLASSPATH=.:$HOME/ packages
  export CLASSPATH
  如果CLASSPATH已经存在于该文件中,则在存在的路径后添加一个冒号(:),并紧跟着添加“$HOME/ packages”。
  敬告读者
  无论我是多么仔细地校对本书中的每一个文档,都会出现少数印刷错误。如果您发现了此类错误,请您通过出版商通知我,我将在后续的印刷和版本中更正这些错误。非常感谢您提出此类问题。
  根据软件许可协议,您可以出于非商业目的免费地使用并修改本书中的类。但对于本书我有一个特别的要求,如果您发现并修改了bug,或是增强了某些类的功能,请您复制一份给我。我的Email地址可以通过本书的Web站点获得。
  我将在本书的J. Chapman
  Melbourne,Australia
  ① 本书在强调将程序划分为类和方法的重要性时,未引入任何面向对象的设计方法。
联系客服 - 加入到博客 - 开发者API - 图书目录 - 关于图书城.com - 对外合作 - 购书指南 - 可以在线阅读吗? - English Version
图书城.com © TuShuCheng.com - 京ICP备06069800