In JADE, types characterize the behavior that can be applied to an instance or value. Types are:
Classes, which group "similar" objects, including a definition of the data those objects contain (properties), and the actions they can perform (methods).
Classes encapsulate structure and operations into a cohesive software unit, which hides the implementation details while exposing only the interface to the class; for example, Employee would be a class in a human resources system.
Primitive types, which have a defined null value that can be tested for by using the null language identifier.
Properties defined as primitive types represent a value, and not a reference to an object.
Interfaces, which enable non-related classes to be grouped to capture their similarities, without the need to artificially force a class relationship.
This mechanism provides a set of methods that are guaranteed to be available on any implementing class. (For more details, see Chapter 14, "Adding and Maintaining Interfaces".)