Be forewarned, however, this book requires discipline. Ya gotta wanna study.
There are plenty of books, on the market, that will teach you the semantics of java programming. But, what if you are asking yourself, "Why do professional java developers write their code the way they do?"
The answer is because they intrinsically know OO methods and techniques. YOU WON'T LEARN THAT FROM A JAVA SEMANTICS BOOK.
Ms. Barker's book takes a different tack. She spends 293 pages, of a 665 page book, explaing WHY the pros do what they do. You don't even touch a source code editor before page 293. That's why I say this book takes discipline. However, those who stick with it, will be amply rewarded.
Source code for the book is available at http://www.objectstart.com and you can even contact Ms. Barker herself if you've got specific questions.
If java represents your first foray into OO technology, do yourself a huge favor and read this book. You, absolutely, will not reqret it.
These first dozen chapters provide an introduction to object modeling, which every Java programmer, if not every object-oriented software developer, should understand fully. This is where the fundamental concepts of abstraction, classes, object instantiation, method invocations and even inheritance are first introduced, only to be re-introduced as Java-specific syntax later on in the book. Unlike the many other books written on learning to program Java, Jacquie Barker takes the time to make sure the reader understands how to design an entire system in an object-oriented fashion from scratch, by painstakingly taking apart the customer requirements list, specifying use cases, identifying classes and designing both the static hierarchy and the dynamic behavior of all the classes that will be involved. She spends these dozen chapters making sure all that is understood and even drawn out in UML or any similar modeling notation way before the system is to be implemented and actually built. Chronologically this would be what would happen in the real world anyway. There then is no better time to dive into Java syntax and learning the language well than after this extensive object introduction where we are finally ready to program. Obviously the principle of having a sound design reverberates throughout this book. So many times have I attempted to start coding in Java without first using pencil, paper, and my brain. Oh how I wished I had this book at my disposal then.
The final part of the book deals with details that make Java useful and unique, such as single inheritance, casting, exceptions, I/O, garbage collection and even Swing, as she introduces these concepts while detailing how to transform the UML model you have just created into actual Java code.
The books intended audience seems quite broad, aimed at developers who lack a sound object-oriented design knowledge to students learning both Java and OO for the first time. Personally even with my 4 years of Java experience, this book still did a fine job of finding and filling in gaps in my knowledge of OOD. One thing to note is that this book seemed to me to be best read from cover-to-cover, not so much as a reference guide you would thumb through. Leave David Flanagan's Nutshell series on your desk for that purpose.
It's actually a very helpful, very educational, very entertaining look at object-oriented software design, at modeling, and at proper management of the process in which they are used to create great software applications.
Barker does a fantastic job of describing the process and life-cycle involved with designing and coding a system, and centers the concepts presented around an iterative practical application, a student registration system for college. She also bases her method of teaching concepts-first-and-then-code around pseudocode, so the reader isn't inundated by too much syntax while trying to grasp fundamental subjects. Barker also steps the reader through the procedural methods of designing an application, such as creating a vision document and glossary of system-specific terms.
In doing so, Barker also uses one of the friendliest voices in her writing that's truly a rarity in technical books these days.
Being an ASP.NET developer working almost exclusively in C#, I got a lot out of it. The Java syntax might be a stretch for VB devs; the book also makes for great recommended reading for those just starting to get into OOP or Java. I'd also recommend this book for Microsoft developers migrating up from Windows DNA and ASP 3.0 technologies, as it really does a good job of walking you through OOP/OOD, which in my opinion has proven to be THE major hurdle for many devs in embracing .NET.
The only downside I can see about this book is that because of the title, developers non-Java other platforms and disciplines will unfairly look past it, and therefore miss out on the important lessons contained within its pages. The book's key strength lies in the chapters on designing use case scenarios and UML diagrams, which I really enjoyed.
It's these unexpected advantages that have put this book in a prominent place in my home library that keep it easily within reach.
This book is too basic for _PROGRAMMERS_ (who grasp things quickly) and they will be bored. I guess I feel that if you need this book, you probably shouldn't have chosen programming as a career. A programmer needs to be resourceful and be able to figure out complex puzzles in a reasonable amount of time. This book walks you through "tediously" step by step in agonizing detail the four or five main object oriented principles.
That being said, for you non-programmers, this book is great and probably just what you need (hence the 3 stars). If encapsulation, polymorphism, and inheritance are buzzwords that you don't really fully get and can't explain in detail what each is, yet regularly use in conversation, this book could help as well.
Different Strokes for Different Folks.
Anyone who is new to OO programming or Java should read this book cover to cover BEFORE (or while) embarking on a Java programming course.
I've found that learning some languages like C, C++ and Java (as opposed to Basic) require a certain threshhold of knowledge before the "aha" moment comes and everything starts making sense. This book distills that pool of knowledge down so that moment comes faster. You should get that overall understanding of OO and Java by the end of reading it.
The book is written in a easy to understand way that EXPLAINS any necessary jargon and acronyms so you UNDERSTAND them (rather than just throwing more pocket-protecter-induced obscure jargon at you like the Sun docs and many reference books)
Anyway - THANK YOU, Jacquie! You've saved me from more frustrated days (er weeks, no months) at the computer.
Karen at Redwood Games
This book is absolute essential reading for ALL Java newbies. Do not purchase a beginning Java book without buying this book as well. It is the PERFECT compliment to any beginner Java book.
The author takes you by the hand and babysteps you though the basic and advanced skills of object oriented design. I read Ivor Horton's "Beginning Java 2" and was quite confused, then I read "Beginning Java Objects" and ALL my confusions disappeared. As someone in the bible said, "I was blind and now I can see."
Do your self a favor and pick-up this book right away!!
A book I highly recommend for getting your arms around OO we a design patterns spin is "Design Patterns Explained." Takes the Gof4 book and breaks it down to easy to understand conceptual examples.
Also, I really appreciated the clear and non-confusing code examples. I find many programming books include unecessarily complex code examples, or throw in new concepts in a code example without explaining them first, or letting you know they are coming. This causes confusion and frustration, and interferes with learning. It was refreshing that this book did none of that.
I'm greatly looking forward to Ms Barker's next book.
All examples in the book revolve around a Student Registration System application developed in java. The organization of chapters is in three sections. First section focuses on basic OO concepts. The second section gives introduction of UML and some Java concepts like Garbage Collection and Exception Handling. Having laid down all the basic stuff i.e. OO concepts and model, the third section of the book is mainly about implementation. It describes GUI Layout fundamentals, Frames, Panels and Listener classes.
The book is easy to follow and useful for beginners. I will recommend this book to everyone who wants to start learning OO programming. Basic OO concepts are presented in the book in nice way. I have not read any other book doing it in such a simple way. Other books tend to get more abstract or complicated. This book presents a nice mix of code and OO Modeling.
I find that many of the Wrox books tend to have less hands-on practice than some other publishers. And many of the Wrox books get a ton of favorable reviews. I guess that either people like books that do not have a lot of practice examples, or something else is going on.
I have read 5-6 Java books. This comes out somewhere in the middle for my purposes.
This is what I am now doing, and for the first time, the big picture is getting home. My combination? Jacquie Bakers's Beginning Java Objects, Dr. David Taylor's Object Technology: A Manager's Guide, and - of course - Walter Savitch's Java: An Introduction to Computer Science and Programming.
Walter Savitch's book is marvelous, repetitive by design; with these three books, there is no place else to go except forward.
Good Luck!
This is a very elegant, informative, thorough book. Most programming books either dive into too much detail too quickly or leave conceptual loose-ends. Jacquie's book, by contrast, is remarkably lucid and well-organized. She also has a great sense of humour.
I'd recommend this book to anyone either learning programming or who wants a fantastic review of objects.
I give her 10 stars **********
When I buy technical books, I'll usually buy a bunch at a time, because the odds are that at least one book will make the other purchases worthwhile. I bought Java XML, Java Servelets, Mathematics for Computer Graphics, Thinking in Java, and Java Objects.
The Java Objects book was my lucky lottery ticket this time, and I didn't really have high hopes for the book at first. However, its conceptual presentation of OOP programming finally made the language useful as a problem-solving tool. I wish my professor had required all us beginner Java students to read this book before actually learning how to write code.
In fact, I'm applying the object-modelling skills from this book to the Actionscript language in Macromedia Flash.