There are three types of classes: instance, static and abstract classes. Static and abstract classes cannot be instantiated.
package MyLib class MyInstanceClass end static class MyStaticClass end abstract class MyAbstractClass end
The access modifier always goes before the class type keyword
package MyLib internal static class MyInternalStaticClass end
With the extends keyword you can inherit from a single base class.
package MyLib class MyClass extends BaseClass end class BaseClass end
A class can implement multiple interfaces using the implements keyword.
package MyLib class MyClass extends BaseClass implements IInterface1, IInterface2 end class BaseClass end interface IInterface1 end interface IInterface2 end
package MyLib class Vector2D x float y float end
A class can have only one constructor.
package MyLib class Vector2D x float y float constructor(x float, y float) this.x = x this.y = y end end
package MyLib using System class Vector2D x float y float constructor(x float, y float) this.x = x this.y = y end getLength() float return Math.sqrt(this.x * this.x + this.y * this.y) end end
A block can be shortend to:
package MyLib using System class Vector2D x float y float constructor(x float, y float) this.x = x this.y = y end getLength() float : return Math.sqrt(this.x * this.x + this.y * this.y) end