

Jacket Description/Back:
Master Java 5.0 and TDD Together: Build More Robust, Professional Software
Master Java 5.0, object-oriented design, and Test-Driven Development (TDD) by learning them together. Agile Java weaves all three into a single coherent approach to building professional, robust software systems. Jeff Langr shows exactly how Java and TDD integrate throughout the entire development lifecycle, helping you leverage today' s fastest, most efficient development techniques from the very outset.
Langr writes for every programmer, even those with little or no experience with Java, object-oriented development, or agile methods. He shows how to translate oral requirements into practical tests, and then how to use those tests to create reliable, high-performance Java code that solves real problems. Agile Java doesn' t just teach the core features of the Java language: it presents coded test examples for each of them. This TDD-centered approach doesn' t just lead to better code: it provides powerful feedback that will help you learn Java far more rapidly. The use of TDD as a learning mechanism is a landmark departure from conventional teaching techniques.
Presents an expert overview of TDD and agile programming techniques from the Java developer' s perspective
Brings together practical best practices for Java, TDD, and OO design
Walks through setting up Java 5.0 and writing your first program
Covers all the basics, including strings, packages, and more
Simplifies object-oriented concepts, including classes, interfaces, polymorphism, and inheritance
Contains detailed chapters on exceptions and logging, math, I/O, reflection, multithreading, and Swing
Offersseamlessly-integrated explanations of Java 5.0' s key innovations, from generics to annotations
Shows how TDD impacts system design, and vice versa
Complements any agile or traditional methodology, including Extreme Programming (XP)
(c) Copyright Pearson Education. All rights reserved.

An agile overview 9
Lesson 1 Getting started 31
Lesson 2 Java basics 63
Lesson 3 Strings and packages 103
Lesson 4 Class methods and fields 133
Lesson 5 Interfaces and polymorphism 163
Lesson 6 Inheritance 195
Lesson 7 Legacy elements 231
Lesson 8 Exceptions and logging 269
Lesson 9 Maps and equality 311
Lesson 10 Mathematics 349
Lesson 11 IO 379
Lesson 12 Reflection and other advanced topics 425
Lesson 13 Multithreading 461
Lesson 14 Generics 509
Lesson 15 Assertions and annotations 535
Additional lesson I Swing, part 1 565
Additional lesson II Swing, part 2 607
Additional lesson III Java miscellany 653
App. A An agile Java glossary 701
App. B Java operator precedence rules 715
App. C Getting started with IDEA 717