Object Oriented Programming: An Introduction Greg Voss
This book is an introduction to object-oriented programming and some programming background is assumed. This book teaches the basic terminology of object-oriented programming (OOP) and teaches object-oriented design - how to best take advantage of OOP features. It discusses what OOP does well and its shortcomings, and aims to give programmers an in-depth understanding of the most important concepts in OOP.