The Object of Java takes an "objects-centric" approach to problem solving and programming using Java. This new edition takes full advantage of the new features of Java 5.0, and has replaced the use of the aLibrary package with increased emphasis on awt and swing. This book takes an objects first approach, and also focuses on the skills and discipline of software engineering that are needed for good programming. Since specifications are critical for conveying code behavior in the object-oriented model, discussions of method preconditions and postconditions, and class invariants are used consistently to document examples and to define example classes. It also uses the notion of patterns to identify numerous expressions, instructions, algorithms and designs that serve to pattern program segments.