Create a new class with two functions and create a new instance of it.
class Calculator { public function new() { trace("A new calculator instance was created!"); } public function add(a:Int, b:Int): Int { return a + b; } public function multiply(a:Int, b:Int):Int { return a * b; } } // Create a new instance of the Calculator var calculator = new Calculator(); trace(calculator.add(1, 2)); trace(calculator.multiply(2, 3));
Declare a class with inheritance
Create a parent class and create another one which "inherits" it.
class Animal { public function new() { } public function sayHello() { trace("Hello!"); } } class Dog extends Animal { public function new() { super(); } } // Create a new Dog instance var myDog = new Dog(); // We can also access its parent's methods myDog.sayHello();
Declare a class with fields
Declare a new class with its own fields, create a new instance and also be able to access and hide its properties.
class User { public var name:String; private var age:Int; public function new(name:String, age:Int) { this.name = name; this.age = age; } } // Create a new User instance var user = new User("Mark", 31); // We can also access it's public variables trace(user.name); // But we cannot access it's private variables trace(user.age); // Error;
Declare a generic class
Declare a new class with its own fields, create a new instance and also be able to access and hide its properties.
class Value<T> { public var value:T; public function new(value:T) { this.value = value; } } // Create a new Value Int instance var myIntValue = new Value<Int>(5); // Create a new Value String instance var myStringValue = new Value<String>("String");
Declare an inline constructor
Declare a new class with an inline constructor (new()
function), create a new instance and reveal its effect.
class Point { public var x:Float; public var y:Float; public inline function new(x, y) { this.x = x; this.y = y; } } // Create a new Value Int instance var myPoint = new Point(100, 150); trace(myPoint.x);
In JavaScript, this will be compiled (where possible) as:
var myPoint_x = 100; var myPoint_y = 150; console.log(myPoint_x);