Starting Out with Java 5: Early Objects
The approach taken by this text can be described as "early objects, late graphics." The student is introduced to object-oriented programming early in the book. The fundamentals of control structures, classes, and the OOP paradigm are thoroughly covered before moving on to graphics and more powerful applications of the Java language. Although it is written for readers with no prior programming background, even experienced programmers will benefit from its depth of detail.