Friend of mine recently asked me to suggest some perfect book on OOP with Java. He wants it to have all concepts, basics, be easy to read... He is doing his first steps in Java, so he wants to get to know all fundamentals clearly.
And you know what? I realized that I CANNOT SUGGEST any such book. Because I never saw good one. I can advice terrific book about Design patterns ("Head First Design Patterns"), on Java basics ("Head First Java"), but not really _OOP_in_Java_. I think the huggest problem for my friend is that he is going into Java from some non-OOP C. So he is really having some problems with understanding OOP.
So I decided to ask for help of JavaRanch's community. I will appreciate any advice and/or suggestion!
<a href="http://www.BossTalks.com" target="_blank" rel="nofollow">http://www.BossTalks.com</a><br />Free advices and help for entrepreneurs: from Idea to IPO<br />Software and IT Project Management forum
The intermediate Java In General forum just hosted a conversation with the author of Beginning Java Objects. It sounded like a pretty cool starting place.
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
Joined: Jul 11, 2004
Originally posted by Scott Ambler: Smalltalk is a very good option for learning OOP too. - Scott
I know, but he is not looking for language to learn. He wants to work with Java, but he is trying to understand OOP as well.
Joined: Jul 11, 2004
Originally posted by Gerald Davis: I think that the best thing you can do is to learn a highlevel lannguage like Python. Java is too lowlevel and verbose, the code jest gets in the way of the concept.
Sorry! It's not an option to learn other language. As I mentioned below, in my first message - my friend wants exactly Java. Not C++, not any other. Just Java. But also he needs to understand OOP.
And speaking about Python -- I WOULD NOT SUGGEST Python to him. Hey, he is my friend, why do I need to do so much harm to him?! Speaking of such languages, I would prefer Ruby myself and would suggest it, in case if THIS would be needed. But again. Please refer to my first message and you'll see. He is not choosing language.
Joined: Aug 03, 2002
Jeff Langr's new Agile Java looks intersting from a beginner's perspective.
Originally posted by Balachandran Paranjothimani: It is better learn the OOAD and programming in Java separately.
I disagree. To me OOD/P is about managing the structure of the code. Trying to learn the D without the P can therefore not work.
OOA, on the other hand, doesn't have anything to do with OOD/P, so you could simply ignore it, or learn it separately (if you find out what it actually is).
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
If your friend can wait a few more months ( ), I'd humbly recommend "Head First OO" (final title still TBD) as a companion to HF Java and HF DP. It's not a Java book (if it were, it would be called "Head First Java," and K&B already wrote that one!), but most of the examples are written in Java.
Unfortunately, it's not likely to be in print until the very end of the year.
PS: Until then, I'd have him start with Head First Java. It definitely covers some of the key OO concepts.
Co-Author of <a href="http://www.oreilly.com/catalog/jswing2" target="_blank" rel="nofollow">Java Swing</a><br />Co-Creator of <a href="http://www.sun.com/training/catalog/courses/CX-310-055.xml" target="_blank" rel="nofollow">SCJP 5.0</a> and <a href="http://www.sun.com/training/certification/java/associate_beta.xml" target="_blank" rel="nofollow">SCJA</a> exams