
Features
- All features of object orientation
- Abstract data type
- Inheritance
- Encapsulation
- Polymorphism
- Class-based
- Constructors for classes and objects
- Optional destructors
- Declarative control over class members
- Class or object bound (static)
- Encapsulation (private, protected, public)
- Inheritance (virtual, real, override, this, super)
- Interface (interface, abstract, property)
- Sealing (final, constant, mutable)
- Simple and easy to learn syntax (using dot operator)
- Automatic operator precedences to avoid parentheses
- Cloning of objects (optionally deep)
- Serialization of classes and objects (including circular references and anonymous classes)
- No serialization of transient classes or class members
- Automatic object names, unique across Mathematica sessions
- Objects of anonymous classes
- Functions to get object dependencies (circular references allowed)
- Functions to get information on classes (parent, child, member, virtual member table)
- Lots of consistency and syntax checks
- Prints few messages and aborts in case of an unrecoverable error
- Thousands of calls per second
- Automatically generates simulation variables (optional)
- Concise formatting of output with tooltips and link buttons for more information
- Everything documented, with examples for all messages included
- Special support for user-defined object oriented libraries
- Optional type checks (InstanceOf, TypeOf)
- Optional hold attributes for individual class methods
- User-defined operators for objects
- Global switch for default inheritance type (virtual or real)
- Global default root class
- Global switch for default encapsulation (public, protected, or private)
- Abstract fields
- Abstract class-bound fields and methods
- No change of Mathematica functionality outside of class or object context
|  |  | | | |
 | |
|