Book Review: Java Objects (Barker, Wrox)

"Beginning Java Objects: from concepts to code" is a recommended but cautioned book. What the heck does that mean? It means that the book is full of useful information on concepts and object modeling, but it is disjointed and potentially confunsing when it comes to java.

This book has gotten many good reviews and while I agree that it does have overall value I do not agree that it is an "excellent, well written and well edited" manuscript as one Amazon reviewer proclaims.

I wanted a book about object oriented design, object modeling and common software design implementation methods and tools such as UML. On these concepts the book is basic but very solid. I got what I wanted in that department. The book is well focused with examples pertaining to a single set of requirements that is modeled into one application (sticking to one app with other small examples was a great concept.) The examples and explanations of objects, messages, relationships, multiplicity and the relating documentation such as functional and technical specifications and use cases (plus use case diagrams) were very good. When the book gets into actual java concepts and examples it gets frustrating and confusing and was obviously NOT well edited by anyone with a real grasp of java.

The java examples use nomenclature that is not the standard. In fact other Wrox books such as "Beginning Java 2" use completely opposite terminology for the same components. For example, when a method is written it has a "signature" that includes "parameters" (the items that are passed to the method), the author in this book constantly calls these items "arguments", which according to the aforementioned book they absolutely are NOT (they are parameters in the signature and the actual items passed to the method are arguments.) In addition to inconsistencies in terminology the book also has many java code examples that are in my opinion poor. For example using a for loop to traverse a collection such as a vector and using the length() method of the collection IN the loop statement to determine how many times to traverse the loop (this is not good because first of all the calculation has to be performed on each traversal and very often the size of the collection may be modified in the loop.)

These might sound like trivial things to point out as problems, they may sound a bit "nit picky", but they can be tremendously confusing for someone trying to learn java. The Wrox books are published as part of a "series" and the beginning books dont even use the same terminology from one to the next, that is flat out lame. Also, I am by no means a Java expert, hence the reason I am reading the "Beginner" series books. Yet when I can find obvious problems with the code examples it becomes apparent that no real java expert ever edited this text. All of these things and a somewhat ambiguous writing style (it looked as though many sections were thrown in to explain things after the fact) made this books java examples and sections annoying to me.

Overall, good book for Objects, bad book for Java. Only read it if you already know java or if you are willing to skip over the java sections (which sorta rules out half of the book, IMHO, get a different and more comprehensive objects book and get a different java book.)

RATING: 1.2 Penguin Afros (out of a possible 5.2 on our scale.)
  Beginning Java Objects: Amazon