## C.7 Summary

This section explained the basic object-oriented notions used in XPCE. XPCE's data is organised in objects and integers. An object represents a state. An object is an instance of a class. A class describes the constituents of the state represented in its instances and the methods (actions) understood by its instances.

A class is a normal object, as are all the other constituents of XPCE's programming world: methods, instance variables, messages, expressions, etc. This uniform representation allows for inspecting and changing XPCE using the four basic interface predicates from Prolog.

The basic interface predicates pass control from Prolog to XPCE. As control is to be passed from XPCE to Prolog (for example if the user presses a button), a message is send to @prolog, the only instance of class host. This object will create a goal from the message and pass this goal to the Prolog environment.