Following an objects-first approach, Developing Java Software starts from the basics of Java programming and takes the reader through to the design and implementation of small- to medium-sized object-oriented programs. In addition to its thorough coverage of key language features and new extensions such as generic programming, this book also introduces the principles of test-driven programming made popular by eXtreme Programming. Divided into five parts, the book introduces object-oriented programming with Java, discusses programming process and testing, contains illustrative case-studies that put ideas into practice, covers designing data structures, class libraries and frameworks, and includes a Java language reference.