||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: Java, BlueJ, object oriented programming
Title: Objects First With Java - A Practical Introduction Using BlueJ
Author: David J Barnes and Michael Kölling
Publisher: Prentice Hall
Media: Book, CD
Level: Introductory Java and objects
Verdict: Highly recommended
Aimed clearly at a classroom audience, Objects First With Java is a title that can be recommended to all who want an introduction to Java and/or an introduction to object oriented programming. It succeeds admirably in teaching both the language and the principles that underpin the language. Along with Head First Java this is also one of the few books which seems to really engage the reader and which pays close attention to how it is we best learn.
The first and more obvious thing about the book is that it is supplied with a copy of the BlueJ, the interactive programming environment designed to help teach Java. BlueJ presents a clean development environment that allows the building, running and debugging of Java code. However it's not simply a Java IDE like Eclipse, JCreator etc. It's a workbench that enables the user to instantiate classes, run methods, interrogate fields etc. In other words objects become real entities which can be manipulated and examined interactively in the workspace rather than abstract data structures that come and go while a program is running. We learn best by doing, and BlueJ enables the user to 'do'.
However, there is more to this book than a CD containing BlueJ and a recent copy of the Sun JDK. The book itself is structured around a series of BlueJ sessions and makes good use of the environment to encourage the reader to try code out, to pull objects and code apart to see how things fit. The examples in the book are excellent. They are inventive, interesting and are used to really illustrate the ins and outs of object development.
This brings us to another of the major plusses in this book. The focus is clearly on learning about objects rather than on learning the finer details of Java syntax and coding styles. From the word go the emphasis is on objects and how they interact with each other. What is more there is also an emphasis on best practices, including a focus on constant improvement through refactoring and redesign. Throughout the text the questions are asked, 'how can we improve this code', 'how can we make it more flexible' and so on.
Design principles are not neglected, with discussion of iterative techniques, design patterns and so on. Again the emphasis is on object development not just Java coding. It's this extra material that makes it such a great Java text. It's not the syntax that is important with Java, it's what you can do with it that counts. Crafting solid, loosely coupled code is what's important rather than covering every single aspect of the language syntax and extensive libraries. While the core language and core libraries are covered, there are huge areas which are simply not discussed, including reflection, RMI, JDBC, JSP etc. What you lose in breadth you gain in depth of understanding of object oriented principles.
Finally, mention should be made of the physical aspects of the book. Good use is made of colour, graphic design and schematics to make the text accessible. The whole package simply fits together very well.
If you're learning Java and/or objects in an academic setting and this is a recommended text then grab it with both hands. If this isn't a recommended text, or you're learning Java on your own then this is definitely one to look at. Highly recommended.