Because such implementation choices are often changed over the lifetime of a project, it is essential to protect clients against their effects. The class includes two feature clauses, introducing its features. Add sum to the balance. Let us examine the features in sequence. So here the class has implemented balance as an attribute, although, as noted, a function would also have been acceptable.
Feature owner is also an attribute.
The language definition guarantees automatic initialization, so that the initial balance of an account object will be zero after a creation instruction. The class designer may also provide clients with different initialization options, as will be shown below in a revised version of this example. In Eiffel's object-oriented programming style any operation is relative to a certain object. If you need to denote the current object explicitly, you may use the special entity Current . For example the unqualified occurrences of add appearing in the above class are equivalent to Current.add .