书籍详情

Java核心编程从问题分析到代码实现(第3版 上下册)

Java核心编程从问题分析到代码实现(第3版 上下册)

作者:[美]约翰·迪恩(John Dean), [美]雷蒙德·迪恩(Raymond Dean)

出版社:水利水电出版社

出版时间:2022-05-01

ISBN:9787522604459

定价:¥198.00

购买这本书可以去
内容简介
  在本书中,我们将带领您进入有趣且令人兴奋的计算机编程世界。在整个“旅程”中,我们将为您提供大量的解决问题的练习。毕竟,优秀的程序员需要善于解决问题。我们将展示如何使用Java程序实现问题解决方案。我们提供了大量的示例,简短的示例集中解释一个概念,而较长的示例更贴近真实的程序设计。我们以会话的方式呈现材料,以便于理解,让这个“旅程”更加愉快。读完这本书后,你应该可以成为一名熟练的Java程序员。本书面向广泛的读者。它既适合标准的大学水平的“程序设计入门”课程或课程序列的学生,也适合有一些编程经验并想学习Java的行业从业者和大学水平的学生,本书还适合自学Java的学生。本书特色:1 教材的基石:解决问题解决问题的能力是所有程序员必须掌握的核心技能。本书通过强调算法开发和程序设计两个关键元素讲解程序化地解决问题的方法。1.1 强调算法开发在第2章,我们在算法示例中使用伪代码代替Java,使读者沉浸在算法开发中。在使用伪代码时,读者能够自己解决复杂的问题,而不会陷入Java的语法困境中—不用担心类头部、分号、括号等。解决复杂问题可以使读者获得对创造力、逻辑能力以及组织能力的初步理解。没有这种理解,读者就会倾向于以死记硬背的态度来学习Java语法。但是有了这种理解,读者学习Java语法往往会更高效,因为他们有了学习它的基础动力。在第3章和之后的章节的算法开发示例中,我们主要依靠Java。但对于更复杂的问题,我们有时候会使用高级的伪代码来描述个提出的解决方案。使用伪代码可以使读者绕过语法细节,专注于解决方案中的算法部分。1.2 强调程序设计解决问题不仅仅是开发一个算法,还包括找出算法的实现,即程序设计。程序设计非常重要,这也是为什么我们会为它付出大量时间。通常,我们会解释一个人在提出解决方法时可能经历的思考过程。举例来说,我们解释怎样选择不同的循环类型,怎样将一个方法切分为多个方法,怎样决定适当的类,怎样选择示例和静态成员,以及怎样使用继承和组合确定类的关系。我们考验读者针对特定任务找出实现方案的能力。我们用一整章的篇幅来介绍程序设计—第8章。在那一章,我们为程序员和用户提供了对代码风格约定和文档的深度观察,介绍了设计策略,如关注点分离、模块化和封装等。此外,我们讲述了备选的设计策略—自上而下、自下而上、基于案例以及迭代增强。1.3 解决问题部分我们经常在解释概念的自然流程中解决问题(算法开发和程序设计),同时也在完全致力于解决章节中涵盖的问题。在每个解决问题的章节,我们都展示一个含有待解决问题的场景。在提出问题解决方案的过程中,我们试图通过迭代设计策略来模仿现实世界中解决问题的经验。我们会提供一个第1版的解决方案,分析此方案,然后讨论对它进行可能的改进。我们使用对话式的试错方式。例如,“我们应该使用哪一种布局管理器?我们先试一下GridLayout管理器。这样可行,但还不够好。现在,让我们再试一下BorderLayout管理器。”这种口语化的语气使读者放松,因为它传出这样一个信息,即程序员在找到方案之前需要反复解决问题,这是很正常的,而且事实上也是符合预期的。1.4 其他解决问题机制我们在整本书中都引入了解决问题的示例和解决问题的建议(不仅在第2章、第8章以及解决问题的章节)。作为重点,在包含解决问题的示例或提示文本旁边,我们插入一个解决问题的方框,它带有一个图标和简洁的提示。我们是通过示例来学习的坚定追随者。因此,我们的教材中包含大量完整的程序示例,鼓励读者使用我们的程序作为范本来自己解决类似的问题。2 教材的基石:基本原理优先2.1将需要复杂语法的概念延后我们认为许多入门级的教材太快地跳跃到需要复杂语法的概念。太早使用复杂语法,读者会养成没有完全理解语法就输入代码的习惯,甚至更糟—没有完全理解示例代码就直接从示例代码复制粘贴。这可能会得不到理想的课程效果,限制读者解决各种不同问题的能力。因此,我们倾向于将需要复杂语法的概念延后。作为这一理念的典型例子,我们在前期介绍简单的GUI编程形式(在可选的图形化编程训练中),在本书的后面涵盖更复杂的GUI编程形式。特别是,我们把事件驱动的GUI编程延后到本书的结尾部分。这一点和一些其他的Java教材不同,它们偏向于早期就完全沉浸在事件驱动的GUI编程中。我们认为这是错误的策略,因为正确的事件驱动GUI编程需要建立在对编程有十足的熟练度之上。当我们的读者在本书的结尾去学习它时,他们能够更好地去完全理解它。2.2 示例追踪要想高效地编写代码,彻底理解代码势在必行。我们发现,一步一步地追踪程序代码是确保彻底理解代码的有效途径。因此,在本书较靠前的部分,当引入一个新的编程结构时,我们经常会对它进行细致入微的说明。我们采用的细节追踪技术阐明了程序员在调试时的思考过程,是由集成开发环境(IDE)软件的调试器生成,在显示器上展示的一系列内容的输出替代品。2.3 输入和输出在可选的GUI跟踪部分,以及本书末尾的GUI章节,我们使用GUI命令来输入和输出(I/O)。不过鉴于我们强调的是基本原理,在本书的其他部分使用控制台命令。对于控制台输入,我们使用Scanner类;对于控制台输出,我们使用标准的System.out.print、System.out.println和System.out.printf方法。3 教材的基石:贴近现实如今,课堂上的学生和业界中的从业者往往更喜欢通过上手实践与贴近现实的方式来学习。为满足这一需求,我们的教材以及配套的网站引入了以下资源。?编译工具。?完整的程序示例。?程序设计中的实践指导。?基于行业标准的代码风格指南。?用于类关系图的统一建模语言(Unified Modeling Language,UML)。?分配的实践性家庭作业。3.1 家庭作业题目我们提供的家庭作业题目是具有说明性、实用性的,并且措辞清晰。这些题目从简单到具有挑战性,被划分成三种类型:复习题、练习题和项目题。我们在每章的末尾引入复习题和练习题,而项目题则是提供在我们教材的网站上。项目题由问题描述组成,它们的解决方案是完整的程序。项目题答案不在教材中。项目题需要读者具备创造力和解决问题的能力,而且要应用在对应章学到的内容。这些项目题往往包含可选的部分,以供那些更有才华的读者去挑战。3.2 学术领域项目题为提升项目题的吸引力并且展示当前章节的编程技术可能被应用到的不同兴趣领域,我们的项目题内容来自以下几个学术领域。?计算机科学和数值方法。?商务和会计。?社会科学和统计学。?数学和物理。?工程学和建筑学。?生物学和生态学。大多数学术领域项目题并不需要特定领域的知识。因此,教师可以放心地把几乎所有项目题布置给任何学生。4 本书组织在撰写本书的过程中,我们引导读者去了解三种重要的编程方法:结构化编程、OOP和事件驱动编程。我们提倡的内容和顺序使学生能够在编程基本原理的坚实基础上发展他们的技能。为培养这种基本原理优先的方法,我们的教材从一组少的概念和细节开始,逐步扩展概念并添加细节,把相对不是很重要的细节延后到之后的章节中,以避免前面的章节负担过重。5 GUI跟踪许多程序员觉得图形用户界面(GUI)编程很有趣。因此,GUI编程可以成为保持读者兴趣和参与度的绝佳激励工具。这就是为什么从第1章开始,图形编程内容就穿插在整本书中。我们把这些内容称为我们的“GUI跟踪之旅”。大多数章末部分的内容是使用GUI代码来完成此章前面部分展示的非GUI内容。对于那些没有时间阅读GUI跟踪部分的读者,没有任何问题。任意或全部的GUI跟踪部分都可以被跳过,因为本书的其他部分并不依赖于任何的GUI跟踪内容。
作者简介
暂缺《Java核心编程从问题分析到代码实现(第3版 上下册)》作者简介
目录








猜您喜欢

读书导航