Properties (attributes and references) represent the internal data storage of an object. The state of an object at any time is determined by the values stored in each of its properties. Properties can be:
Attributes
Primitive variables such as numbers, strings, or boolean values (for example, age, name, and gender)
Single-valued references
References to other objects
Multiple-valued references
References to collections of other objects (for example, a collection of employees in a company object)
Properties can be public, protected, read-only, virtual, or subschema-hidden. If properties are protected, they are exclusive to that object and cannot be accessed by any other object. There is one copy of a property for each instance of a class.
For details about defining your own properties, see "Defining Properties", in Chapter 4.