Object-oriented programming (OOP) encourages programmers to think in terms of
data types. Programs are constructed around data types and data-type hierarchies.
The fundamental building blocks in an object-oriented program are classes and objects.
An object is a packet of information stored in a chunk of computer memory. Every
object is associated with a data type, and the data type determines what can be done
to an object. All programming languages have built-in data types, such as the integer
data type and the character data type. Typically, programmers define data types and
data-type hierarchies themselves so that they can describe individual entities to come
up naturally in their applications.