Note that the object is defined on the assumption that some of its operations can depend on operations to be supplied by other objects. This is the notion of delegation and allows us to treat objects as interacting components.
When we come to implementation of the system, the description above is fleshed out with concrete decisions about how the internal state of each type of object will be maintained. Typically this involves defining instance variables and the implementation of both the externally visible (public) operations used in the design and of any new internally restricted (private) operations.