Learning object-oriented programming

Removing repetitive code (overloading methods and constructors)

Primitive and reference variables

Objects and references