Picking up a language like Java can be difficult for a beginner; even if you understand the methods you need to use to get results, it can be easy to overlook the basic processes behind how they all mesh together. Kolling and Barnes identified the need for a fundamental understanding of how each element of Java functions and interacts, and packaged this information into an easy-to-understand, although lengthy, book. Objects First With Java: A Practical Introduction Using BlueJ comes with (as the title might suggest,) BlueJ, a Java environment perfectly suited to learning the basics of programming. With this environment, one can open a variety of simple Java modules included with the book, providing an extremely effective learning tool, particularly for those who learn best by seeing and doing.
The book does well in the process by which it teaches you; starting with the structures of objects, classes and basic methods and progressing to more complex ideas, such as calling on methods outside your present object. The book can be obtuse at times, though this effect is largely mitigated by the inclusion of the BlueJ modules, which often directly show what is being taught. It should be noted that while this book sells itself as being for beginners, though even students with one or two years of programming experience could benefit from a glance through this book.
The price may be prohibitive at first glance, but the inclusion of the BlueJ environment and the Java modules helps justify this cost somewhat. Some might suggest buying older editions of this book, and for the most part, I don’t disagree with this, though keep in mind going back more than 1 edition of the book can get you into trouble in that you might not have all the modules of the 4th edition, and some information will be slightly different.