Если вы уже занимались объектно ориентированным программированием, то со структурой классов уже наверняка знакомы. В haXe она создаётся следующим образом:
package my.pack;
/*
так создаётся определение класса my.pack.MyClass
*/
class MyClass {
// ....
}
У Класса может быть несколько
переменных и
методов.
package my.pack;
class MyClass {
var id : Int;
static var name : String = "MyString";
function foo() : Void {
}
static function bar( s : String, v : Bool ) : Void {
}
}
Переменные и методы могут иметь следующие
флаги :
- static : поле принадлежит самому Классу, а не его экземплярам (объектам). Статические идентификаторы могут использоваться напрямую в самом классе. Вне класса, они должны быть использованы с именем, класса, которому принадлежат (например : my.pack.MyClass.name).
- public : поле открыто для доступа из других классов. По умолчанию, все поля - private.
- private : доступ к полю разрешён только из самого класса и из классов, которые от него наследуют.
Все
переменные класса должны быть типизированными, т.е. объявлены с типом (можно использовать тип Dynamic если неизвестно, какой тип следует использовать или хочется писать в стиле языков с динамической типизацией).
Аргументы функций и возвращаемые значения необязательны, но их типы также строго проверяются, как мы увидим позже во введении в
выявление типов.
Статические переменные
могут получать значение при объявлении, но это не обязательно.
Конструктор класса
У класса может быть только один конструктор, представляющий из себя нестатическую функцию с именем new. Это ключевое слово, которое также может быть использовано для названия функции класса.
class Point {
public var x : Int;
public var y : Int;
public function new() {
this.x = 0;
this.y = 0;
}
}
Комментарии
Отправить комментарий