Objects are the primary concurrent structuring concept of Oz. They combine data encapsulation through procedural abstraction with state and mutual exclusion. Objects can be seen as service-providing agents. The services of an object are provided through methods and can be requested by sending messages to the object. Objects are created as instances of classes.
Classes define methods, attributes and features.
The definition of a class may involve inheritance from other classes. Objects and classes are first-class citizens. They are created dynamically. Objects can be spawned as concurrent agents. Creating communicating agents in Oz is as simple as writing functions in Lisp.