新書推薦:
《
封建社会农民战争问题导论(光启文库)
》
售價:NT$
296.0
《
虚弱的反攻:开禧北伐
》
售價:NT$
429.0
《
泰山:一种中国信仰专论(法国汉学经典译丛)
》
售價:NT$
380.0
《
花外集斠箋
》
售價:NT$
704.0
《
有兽焉.8
》
售價:NT$
305.0
《
大学问·明清经济史讲稿
》
售價:NT$
330.0
《
中国国际法年刊(2023)
》
售價:NT$
539.0
《
实用对联大全
》
售價:NT$
225.0
|
編輯推薦: |
《Java超能学习手册》共10章,通过游戏开发的方式来介绍Java语言的特性以及数据结构和OOP。通过13个游戏编程挑战,64个知识点,可以帮助读者掌握近40个学习成就。书中涉及如何使用Java编程语言、NetBeans IDE和一个2D游戏引擎来完成三个不同的2D游戏。
《Java超能学习手册》适合想要掌握Java编程技能的读者,可以为他们后续职业生涯打下坚实的基础。
|
內容簡介: |
《Java超能学习手册》通过大家熟悉的三个2D游戏制作过程来讨论Java语言的各个特性,帮助读者掌握Java编程语言的基础知识,比如数据结构和OOP。通过针对特定游戏项目和主题的编码挑战,读者将掌握如何使用Java编程语言、NetBeans IDE、一个2D游戏引擎来开发三个不同的2D游戏。 《Java超能学习手册》适合想要掌握Java开发技能的读者,可以为他们后续的职业生涯打下坚实的基础。
|
關於作者: |
维克多·G.布鲁斯卡(Victor G.Brusca) 是一位经验丰富的软件开发人员,擅长构建跨平台应用程序和API。他是一个积极进取的人,注重细节,注重系统/数据,对代码有极高的要求。他拥有超过14年的软件开发经验,做过J2ME、T-Mobile SideKick、WebOS、Windows Phone、Xbox 360、Android、iOS 和 Web 平台上的游戏和游戏引擎项目。
|
目錄:
|
第1章 初始设置 001
第2章 什么是Java编程 012
第3章 变量 024
第4章 深入表达式和作符、流程控制以及变量 052
第5章 更多数据结构 083
第6章 循环和迭代 103
第7章 对象、类和OOP 121
第8章 封装、继承和多态性 147
第9章 调试技术 174
第10章 结语 184
详细目录
第1章 初始设置 001
1.1 设置环境 001
1.2 体验游戏 007
1.3 小结 011
第2章 什么是Java编程 012
2.1 计算机和编程 012
2.1.1 计算机编程 012
2.1.2 高级编程语言 013
2.1.3 程序/编程类型 014
2.2 Java编程语言 016
2.2.1 JRE 017
2.2.2 JDK 017
2.3 语法和语义 018
2.3.1 基本语法规则 019
2.3.2 关键字/留字 019
2.4 游戏编程 020
2.4.1 游戏主循环 021
2.4.2 程序结构 022
2.4.3 本书游戏概述 022
2.5 小结 023
第3章 变量 024
3.1 数据类型 024
3.1.1 基本数据类型 025
3.1.2 使用基本数据类型 027
3.1.3 游戏编程挑战1:基本数据类型 029
3.1.4 解决方案 030
3.2 高级数据类型 032
3.2.1 var关键字和动态类型 032
3.2.2 数组 034
3.2.3 使用数组 035
3.2.4 游戏编程挑战2:数组 042
3.2.5 解决方案 043
3.2.6 列表 044
3.2.7 使用列表 046
3.2.8 游戏编程挑战3:ArrayList 049
3.2.9 解决方案 050
3.3 小结 050
第4章 深入表达式和作符、流程控制以及变量 052
4.1 表达式和作符 052
4.2 数值表达式 056
4.3 布尔表达式 058
4.4 赋值表达式 059
4.5 递增/递减表达式 059
4.6 按位表达式 061
4.7 移位表达式 061
4.8 作符和作符先级 062
4.9 流程控制 063
4.9.1 if-else 语句 064
4.9.2 switch语句 066
4.9.3 try-catch语句 068
4.9.4 游戏编程挑战4:流程控制 069
4.9.5 解决方案 070
4.10 深入变量 072
4.10.1 枚举 072
4.10.2 非常基本的Java类 073
4.10.3 强制类型转换 074
4.10.4 游戏编程挑战5:枚举 078
4.10.5 解决方案 080
4.11 小结 081
第5章 更多数据结构 083
5.1 多维数组 083
5.1.1 声明多维数组 084
5.1.2 使用多维数组 084
5.2 哈希 088
5.2.1 声明Hashtable 088
5.2.2 使用Hashtable 089
5.3 栈 092
5.3.1 声明栈 092
5.3.2 使用栈 093
5.4 队列 097
5.5 参数化类型和数据结构 099
5.6 游戏编程挑战6:栈 099
5.7 解决方案 100
5.8 小结 102
第6章 循环和迭代 103
6.1 for 循环 103
6.1.1 基本for循环 104
6.1.2 for-each 循环 107
6.2 while循环 109
6.2.1 基本while循环 109
6.2.2 游戏主循环 110
6.3 do-while循环 116
6.4 break和continue 117
6.5 游戏编程挑战7:for-each循环 118
6.6 解决方案 119
6.7 小结 119
第7章 对象、类和OOP 121
7.1 类 122
7.1.1 字段 123
7.1.2 方法 126
7.1.3 静态成员 131
7.1.4 构造函数 134
7.2 游戏编程挑战8:MmgBmp类 136
7.3 解决方案 137
7.4 游戏编程挑战9:ScreenGame类 139
7.5 解决方案 140
7.6 类的高级主题 140
7.6.1 访问 140
7.6.2 类的设计 140
7.6.3 static main入口点 141
7.7 游戏编程挑战10:Dungeon Trap的静态主入口点 143
7.8 解决方案 144
7.9 小结 145
第8章 封装、继承和多态性 147
8.1 封装 147
8.2 继承 148
8.2.1 游戏编程挑战11:继承 150
8.2.2 解决方案 151
8.3 多态性 152
8.3.1 游戏编程挑战12:多态性 158
8.3.2 解决方案 160
8.4 导入类库 161
8.5 视频游戏项目结构 162
8.5.1 游戏编程挑战13:新建游戏项目 164
8.5.2 解决方案 165
8.6 小结 172
第9章 调试技术 174
9.1 输出跟踪 174
9.2 IDE的调试功能 175
9.3 异常 178
9.3.1 异常处理 178
9.3.2 定义异常 181
9.3.3 栈跟踪 182
9.4 小结 183
第10章 结语 184
10.1 学成就 184
10.2 技能提升建议 187
10.3 后会有期 188
|
內容試閱:
|
前?言
在本书中,你将通过一系列需要实际动手的游戏开发任务来学习Java编程语言的基础知识。通过完成特定主题的编码挑战,每次都侧重于本书展示的三个游戏的某个特定方面,你将获得使用Java编程语言、NetBeans IDE、一个2D游戏引擎和三个2D游戏的经验和知识。不多说了,请允许我先介绍一下本书采用的结构和惯例。
本书将指导你学习Java编程语言的基础知识和一些高级主题。在讨论不同主题的过程中,你面临的挑战是更改、修复、编写以及/或者调试本书呈现的三个游戏之一:
Pong Clone(克隆乓)
Memory Match(记忆配对)
Dungeon Trap(地牢陷阱)
每个游戏都是用本书包含的一个专用2D游戏引擎编写的。该引擎是开源的,如果想看一下相关的代码,可以访问github.com/Apress/introduction-to-java-through-gamedev。
与这个游戏项目相关的源代码可以在同一个存储库(repo )中找到。
每个游戏项目都有一个功能齐全、包含完整代码的版本。另外还有编码挑战。随着你在本书中的进展,会不时得到一些挑战,目标是将某些Java编程语言知识应用到手头的游戏项目。为此,我们为项目准备了专门的副本,预先为挑战进行了配置。
一般来说,除了下载上述配套资源,本书不要求互联网连接。另外,只需要少量计算资源来运行相关的软件和游戏。计算机满足以下最低要求即可:
双核CPU
4 GB内存
2 GB硬盘存储
目前绝大多数计算机都能轻松满足上述要求。另外,使用任何一种编程语言时,都必须先想好要用什么工具来编码。很多时候,使用记事本和一些命令行工具即可完成程序的编写和生成。但是,我们的例子需要使用一些更高级的工具。具体地说,需要一个IDE。
IDE是“集成开发环境”(Integrated Development Environment)的简称,本身就是一套相当复杂的程序,它的目标是简化软件开发人员的一些任务,使他们能够承担更大的项目,并专注于手头的编码工作。游戏是复杂的程序,经常会有许多小组件。因此,使用IDE会使我们非常方便。本书选择的IDE是NetBeans,本章稍后会讲述如何安装它。
本书的每个示例游戏都是为一个简单的Java 2D游戏引擎编写的。通过从本书的编码挑战所汲取的经验,将为使用该游戏引擎在Java中创建自己的一些2D游戏打下坚实的
基础。
本书结构
本书采用了统一的结构。首先,每章都遵循以下常规结构:
本章简介
主题#1
主题#2
编程挑战-描述
编程挑战-解决方案
本章小结
其中,“主题”和“挑战”部分会根据需要重复,以覆盖本章要讲的所有主题,而且有时会在结构上略有区别。不过,一般来说,每章的结构都与前面概述的结构相似。除此之外,每章都会在相应的游戏项目中为这一章的每个挑战设置一个命名空间条目。
本书稍后会更进一步阐述这方面的内容。重点在于,每个挑战都有一个小的游戏沙盒副本供操练,还有一个已经完成的例子供参考。编程挑战本身的结构存在于当前章的大纲中。无论如何,在我们继续之前,先来稍微讨论一下。
编程挑战-描述
编程挑战-解决方案
前面列出的是本书所提出的编程挑战的常规结构。挑战会附有详细的描述和线索(如果有的话)。当然,相应小节的标题和内容是各不相同的。挑战本身的设计宗旨是帮助读者运用从当前编程语言主题中学到的知识。每个挑战都是不同的,但肯定是一个小的开发任务,涉及当前讲述的Java编程语言主题。
在描述了挑战之后,会解释解决该挑战的正确方法,我们会使用截图或其他资源来演示正确的解决方案。还会明确指出在哪里可以找到挑战在完成后的代码,所以不必担心搞不清楚问题是如何解决的。
本书各章和挑战部分的总体结构大致如此。本书的总体节奏是从Java编程语言的基本方面开始,然后向更高级的主题和语言特性发展。
本书约定
在正式开始本书的阅读之前,这里有必要强调一下本书采用的一些排版约定。首先,书中会有一些项目列表:
项目1
项目2
项目3
大多数时候,这些列表会直接嵌入正文,而不会用任何特殊的标题或描述文字来装饰。少数情况下,如果列表有某种特殊意义,那么它也可能会有自己的标题和说明,这类似于代码和插图的排版方式。书中的代码片段会附带编号和标题,并采用等宽代码字体。如下所示:
清单1-1?示例 - SomeClass.java
1 int test = 0
为了理解一个代码片段,可以参考它的标题和正文对它的说明。代码片段中的行号通常相对于代码清单的起始行。代码的起始行由当前上下文决定,即书中当前正在讲解的例子。另外,除非将代码拆分为多个清单,否则总是从第1行开始。插图的呈现方式类似,如下所示。
最后,书中会在某些地方列出提示或旁注。有两种类型的旁注:关于游戏开发的旁注和关于Java编程语言的旁注。它们采用如下所示的格式:
游戏开发说明
关于Java游戏开发或游戏引擎使用的说明。
Java编程说明
关于Java编程的说明。
我们通过这些旁注来介绍涉及游戏开发或Java编程语言本身的扩展或高级信息。
Dungeon Trap主菜单
本书目标
本书希望达到几个目标。首先是对Java编程语言的基本特性进行完整的说明和演示。其次是介绍Java编程语言的一些高级功能。最后,本书旨在让你体验使用NetBeans IDE和一组配套的视频游戏项目直接上手游戏编码。后续小节更详细地说明了这些目标。
Java基础主题
本书涉及以下Java编程语言基础主题:
概述:计算机编程
Java编程语言:语言发展简史
概述:游戏编程
基本数据类型:Java的基本数据类型
高级数据类型:Java中的高级和自定义数据类型
枚举:Java中的枚举数据类型
使用变量
使用数值表达式
使用布尔表达式
用if、else、else-If 语句进行流程控制
用switch语句进行流程控制
Java语言中的数组
使用基本for循环
使用while 循环
类/库的导入:使用Java的类和库
掌握了Java编程语言的基础知识后,继续深入高级主题就显得游刃有余了。下一节展示了本书涉及的高级Java编程主题。
Java高级主题
本书确实涉及一些更高级的Java编程主题,但并没有深入那些非常高级的。但即使是这些主题,对初学者来说都有些难。这很正常,因为它们本来就比较复杂。为了帮助你理解,本书除了用通俗易懂的文字来解释,还会提供一些挑战来帮助你巩固。本书涉及以下高级主题:
自定义数据类型:包括类和枚举
使用try-catch语句进行异常处理
使用列表数据结构
使用字典数据结构
泛型与特化数据结构
使用for-each循环
面向对象编程概述:简要介绍OOP的设计与实现
类:简要介绍类
使用类的字段
使用类的方法
使用类的构造函数
使用类的静态成员
访问类成员
类的设计和实现
封装:Java游戏项目中的封装实例
多态性:在Java游戏项目中使用多态性的例子
继承
项目结构
调试:使用调试来跟踪程序错误和问题。
Java编程的高级主题由于牵涉甚广,所以往往需要花费很多的笔墨。这超出了本书的范围,所以,本书对于高级主题的讨论会尽可能简要,以便涵盖尽可能多的主题和材料。
游戏开发主题
这是一本入门性质的书,所以不会全面涉及游戏开发的主题。但是,由于书中的每个挑战都集中在将当前所学的Java编程语言知识应用于一个实际的视频游戏,所以必然会从中获得一些感悟,并接触到以下游戏开发主题:
项目结构:体验操作三个不同的游戏及其类和项目结构
游戏资源:获得使用游戏资源的经验
游戏引擎:本书包含一个完整的游戏引擎,所有示例游戏都使用这个引擎
游戏主循环:体验游戏主循环的工作并理解其重要性
好了,我们已经快速概览了本书涉及的不同主题。有的主题是直接列出来的,有的则是通过处理更大、更复杂的项目的某个部分来间接学到的。下一节将设置开发环境并下载本书代码的最新副本。
|
|