I would personally suggest that if you're in the market to learn OO, that you find a language that's as OO as possible, in order to avoid falling back to old habits. My personal suggestions for that would be Ruby or Smalltalk. Java is not quite OO enough, IMHO, to be excellent for this purpose. Once you've got OO down, then you'll be able to use any OO-ish language to its full potential, even C++.
_________________________
Bitt Faulk