Object-oriented programming is modeled on the observation that in the physical world,
objects are made up of many kinds of smaller objects.
However, the capability to combine objects is only one aspect of object-oriented programming.
Another important feature is the use of classes.
A class is a template used to create an object. Every object created from the same class
has similar features.
Classes embody all features of a particular set of objects. When you write a program in
an object-oriented language, you don’t define individual objects. Instead, you define
classes used to create those objects.
For example, you could create a Modem class that describes the features of all computer
modems. Most modems have the following common features: