I learnt more about how OO programming is supposed to work in a short Scala course than years faffing around in Java. Java is somewhere between "object-oriented" and "object-aware".

And then if you want to look at a *real* object-oriented system, your best option is Smalltak.

Wade.