Terminology: Access to state is via
objects. An object can receive
messages, and has access to various
methods for responding to them.
Terminology: Objects are created by
classes, which specify what state is to be created
when a new object is created, what messages the object will process,
which methods it will use to process those messages, and what to do if
the object receives a message for which it has no method.
The classes are related to each other through
inheritance or delegation. We'll
explore delegation (it's a bit more powerful) but Java uses
inheritance.
In Scheme, objects and classes are both procedures. The local
state is stored in the frames that are created when the procedures are
called. This is also true of Java.