
Features
- New in 1.1
- Methods with several bracket pairs
- Scripted fields and methods
- Fall-back method
- Enhanced threading over lists of entities and members
- Static classes
- Virtual static
- Forced attribute inheritance
- Forced implementation or constructors
- Many new warnings
- Multiple object generation with New{...}
- Attributes for interface
- Entities as field names
- Class members as arguments of a method of another entity
- 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 (This, Private, Protected, Public)
- Inheritance (Virtual, Real, Override, This, Super)
- Interface (Interface, Abstract, Implement, 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
- Analogously: global switch for default encapsulation (This, Public, Protected, or Private)
- Abstract fields
- Abstract class-bound fields and methods
- No change of Mathematica functionality outside of class or object context
|  |  | | | |
 | |
|