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, prove a soundness theorem (via a subject reduction property), and give a sound and complete typing algorithm.