Объектно-ориентированное программирование
В этом руководстве представлена модель ООП, используемая в Eiger, включая Классы и Датаклассы.
Классы
Класс определяет схему объектов. Он может содержать свойства и функции (методы), а также поддерживает конструкторы для инициализации объектов.
Синтаксис
class ClassName {
let [modifiers] propertyName
~ Функция `new` действует как конструктор.
func new(parameters) {
~ `this` - ссылка на текущий объект.
this.propertyName = parameter
}
}
Пример
class Person {
let private m_name
let private m_age
let private m_birthYear
~ Конструктор
func new(name, age, birthYear) {
this.m_name = name
this.m_age = age
this.m_birthYear = birthYear
}
~ Метод
func summary() {
ret (m_name + " (" + m_age.asString + " years old, born " + m_birthYear.asString + ")")
}
}
~ Создание объекта класса из "чертежа" (класса)
let personOne = Person("John", 25, 2000)
~ Вызов метода summary в personOne
emitln(personOne.summary())
Функции
- Свойства объявляются с помощью
let
, как и переменные - Модификаторы доступа:
public
(по умолчанию): Доступно из любой точки в программеprivate
: Доступно только внутри класса
- Конструктор:
- Объявлено с помощью
func new(params)
- Используется для инициализации объекта.
- Объявлено с помощью