| Source Code | Preprocessor | Comments | Literals | Classes | Closures | Functions | Function Types |
The object modell of AAL is a mixture of the Java and the C++ modell
class ClassName [extends SuperClass] (implements InterfaceName)* { Constructors Fields Methods Operators } |
class AClass { private int _ival; public AClass(int i) : _ival(i) {} public int getIVal() { return _ival; } } |
class AClass { // [attributes] Type Name; private int _ival; } |
class AClass { public int value = 42; // illegal } |
class AClass { public static int ival = 42; // static field with initializer } AClass cls1 = new AClass(); AClass cls2 = new AClass(); cls1.ival == 42; // -> true AClass.ival == 42; // -> true // access via class identifier cls2.ival = 41; cls1.ival == 41; // -> true AClass.ival == 41; // -> true |
class AClass { public int _avar; protected AClass() : _avar(1) // initialize member with 1 { _avar = 1; // alternative notation this._avar = 1; // alternative notation } protected AClass(int av) : _avar(av) { } } class BClass extends AClass { public _ivar; public BClass(int iv, int av) : AClass(av) // call super constructor , _ivar(iv) // initialize own member { } } <h4><a href="#jumptable178"><img border="0" src="./../../../../../../images/arrow_up_stop.gif"> </a><a class="jumptarget" name="Automatic Instance Constructor Generation">Automatic Instance Constructor Generation</a></h4> If an super class has no constructor, Aal provides an default constructor for this class. The default constructor has no arguements. <rs> class AClass { public int foo() { return 0; } } class BClass extends AClass { public BClass() : AClass() // legal, because Aal generate an default constructor for the AClass { } } |
class AClass { protected AClass() { acdk.lang.System.out.println("AClass.AClass() called"); } class BClass extends AClass { } // call the automatic generated Constructor BClass.BClass() // This BClass.BClass() constructor will call the default // constructor AClass.AClass() BClass bcls = new BClass(); output> AClass.AClass() called |
class AClass { static acdk.lang.String stringVal; // will be called once at load time public static AClass() { stringVal = "asdf"; } } |