Наследование суперклассу

июня 23, 2008

Можно унаследовать класс, воспользовавшись символом <:
class Boojum < Snark
# …
end
Это объявление говорит, что класс Boojum является подклассом класса Snark или - что то же самое - класс Snark является суперклассом класса Boojum. Всем известно, что каждый буюм является снарком, но не каждый снарк - буюм.
Ясно, что цель наследования - расширить или специализировать функциональность. Мы хотим [...]

Читать далее →

Применение нескольких конструкторов

июня 19, 2008

В Ruby нет «настоящих» конструкторов, как в C++ или в Java. Сама идея, конечно, никуда не делась, поскольку объекты необходимо создавать и инициализировать, но реализация выглядит иначе.
В Ruby каждый класс имеет метод класса new, который вызывается для создания новых объектов. Метод new вызывает специальный определяемый пользователем метод initialize, который инициализирует атрибуты объекта, после чего new [...]

Читать далее →

Рутинные объектно-ориентированные задачи

июня 19, 2008

Of his quick objects hath the mind no pa?t,
Nor his own vision holds what it doth catch…
Вильям Шекспир, Сонет 113
Если вы вообще не знакомы с ООП, то эта глава вас ничему не научит. А если вы понимаете, что такое ООП в языке Ruby, то, наверное, ее и читать не стоит. Если понятия ООП не слишком [...]

Читать далее →

ООП и динамические механизмы в Ruby

июня 19, 2008

Как введение иррациональных чисел… стало удобным мифом,
упростившим законы арифметики… так физические объекты
и постулированные сущности делают наше восприятие реальности более
простым и завершенным… Концептуальная схема физических объектов
напоминает удобный миф, который проще, чем истина,
но при этом содержит тут и там частички истины.
Уиллард Ван Орман Квин
Это необычная глава. В большинстве других глав рассматривается какой-то конкретный аспект, например строки или [...]

Читать далее →