Object-oriented programming
(OOP) originated in the SIMULA language
for discrete event simulation. The desire was to
simulate large
numbers of similar objects in an efficient manner. A
class/instance
representation achieves this goal.

Class: represents the behaviors that
are shared by all of its instances.

Instance: represents the data for a particular individual.

Classes are arranged in a hierarchy, with
inheritance of behaviors
from higher classes.