What your jvm can do for you
Progressive EPiServer Development
Chapter 11 and 12: Abstract Data Types and Encapsulation Constructs; Support for Object Orientation Lesson 11.