Объектно-ориентированное программирование
В этом руководстве представлена модель ООП, используемая в 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) - Используется для инициализации объекта.
 
 - Объявлено с помощью