Next: Creating Objects Up: Creating Classes Previous: Instance Variables

## Initial Values

The initial value and `sequence` expressions for an instance of the class are evaluated in an environment that comprises

- the environment of the `class*/name` expression;
- all internal instance variables and initialization variables of the class declaration;
- this-variable (usually `this`, bound to the object itself); and
- super-init-variable (usually `super-init`, bound to an initialization procedure for the superclass).

The initial value and `sequence` expressions are evaluated each time an object of the class is created. The expressions are evaluated in the order in which they occur in the `class*/name` expression (across clauses and including `sequence` clauses).

Before an initial value expression has been evaluated, the value of the corresponding instance variable is initialized to undefined (see section 4.1). Because all of the instance variables have mutually-recursive scopes, the undefined value of an instance variable can be exposed. The initialization process is described in more detail in section 6.4.