Learning Java Through Games: 1st Edition (Paperback) book cover

Learning Java Through Games

1st Edition

By Lubomir Stanchev

CRC Press

386 pages | 100 B/W Illus.

Purchasing Options:$ = USD
Paperback: 9781466593312
pub: 2013-11-12
SAVE ~$19.79
Hardback: 9781138428034
pub: 2017-07-27
SAVE ~$41.00
eBook (VitalSource) : 9780429167683
pub: 2013-11-12
from $47.98

FREE Standard Shipping!


Learning Java Through Games teaches students how to use the different features of the Java language as well as how to program. Suitable for self-study or as part of a two-course introduction to programming, the book covers as much material as possible from the latest Java standard while requiring no previous programming experience.

Taking an application-motivated approach, the text presents an abundance of games. Students must read through the whole chapter to understand all the features that are needed to implement the game. Most chapters start with a description of a game and then introduce different Java constructs for implementing the features of the game on need-to-use bases.

The text teaches students not only how to write code that works but also how to follow good software practices. All sample programs in the text strive to achieve low cohesion and high coupling—the hallmarks of well-designed code. Many programs are refactored multiple times to achieve code that is easy to understand, reuse, and maintain.

The first part of the book covers basic programming techniques, such as conditional statements, loops, methods, arrays, and classes. The second part focuses on more advanced topics, including class inheritance, recursions, sorting algorithms, GUI programming, exception handling, files, and applets.

Table of Contents

Basic Principles

Computer Hardware and Software

Brief History of Computers

Hardware Components of a Computer

Binary Representation of Numbers

Software Creation and Types of Software

Type of Programming Languages

Brief History of Computer Games

Data Types and Conditional Statements

Our First Java Program


Random Numbers and the if Statement

Combining Conditions

The String Class

The switch Statement

The Conditional Operator


The while Statement

The do-while Construct

The for Loop

Nested for Loops

The Modulus Operation

Methods and Formatted Output

Introduction to Methods

Formatting Output

Code Refactoring

Documenting Methods Using JavaDoc

Sending Data between Methods

The Trading Game

Introduction to Arrays

One-Dimensional Arrays

The Trading Game Revisited

Two-Dimensional Arrays

Variable Argument Methods

Command Line Arguments

Introduction to Classes

Classes and Objects

Class Interaction and Data Encapsulation

Default Constructor

The toString Method

Instance versus Static

Non-Empty Constructors and the Hidden Parameter this

Array of Objects and Multi-Class Solutions

Multi-Class Solution to the Battleship Game

The ArrayList Class and the enum Keyword

Introduction to the ArrayList Class

Immutable Objects

The StringBuffer Class

The Interface of an ArrayList

Introducing the enum Construct

Advanced Programming Techniques

Classes Revisited

Class Containment

Inheritance and the super Keyword

Multiple Inheritance

Constructors of Subclasses

Abstract Classes and Methods

Auto-Casting, Polymorphism, and Dynamic Binding

Interfaces and the Comparable Interface

Access Privileges

The final Keyword

Static Methods and Polymorphism

Explicit Type Checking

Cloning Objects

Comparing Objects for Equality

Fun with Swing

Introduction to Swing

Creating Windows

Panels and Drawing

Nested Classes and Event Handling

The Timer Class

Nested Classes

Event Listeners


The Breakout Game (Complete Version)

Overview of the Game

Game Design

Moving the Ball

Adding the Paddle

Drawing the Stickmen

Adding the Menus

Adding the Bricks

Layout Management and GUI Components

Creating Buttons

Flow Layout

Border Layout

Text Fields and Labels

Grid Layout

Creating Text Areas with Scroll Bars

The Combo Box

Check Boxes

Radio Buttons

Document Listeners

Creating Dialog Boxes

Working with Password Fields

Exception Handling and Files

Handling Exceptions

Text Files

Data Files


Base Case and General Case

Dynamic Programming

Internal Details of a Recursive Call

Array Algorithms

Java Applets

HTML and the Java Applet Architecture

Principles of Java Applets

Creating Popup Windows

The Tic-Tac-Toe Game


A Summary, Syntax, Important Points, Exercises, Labs, and Projects appear at the end of each chapter.

About the Author

Lubomir Stanchev is an associate professor in the Department of Computer Science at Indiana University–Purdue University Fort Wayne. He received a Ph.D. from the David R. Cheriton School of Computer Science at the University of Waterloo. He has taught introductory programming courses and software engineering courses about 15 times in the past eight years. He has published more than five journal articles and more than 20 conference proceedings in the area of computer science. He has been writing software code for over 30 years and has worked as a software developer in four different companies.

Subject Categories

BISAC Subject Codes/Headings:
COMPUTERS / Programming / Games
COMPUTERS / Programming Languages / General