I strongly recommend the Head First series. For starting with OOP in Java, you can try "Head First Java", by Sierra and Bates (http://amzn.com/0596009208). Plenty of examples given, analogies with real life situations etc. Once you understand the basics, if you want to get into details, then try...