This paper presents an imperative object calculus,
designed to support class-based programming via a combination of
extensible objects and encapsulation. This calculus simplifies the
language presented in Fisher's thesis in that, like C++ and
Java, it chooses to support an imperative semantics instead of
method specialization. We show how Java-style classes and ``mixins''
may be coded in this calculus and prove a subject reduction theorem.