Курс языка программирования Raku / Объекты, ввод-вывод и исключения / Классы и объекты / Классы
Объекты типа и экземпляры
Когда вы пишете имя класса, например Dog, вы обращаетесь
к объекту типа этого класса. Объект типа представляет сам тип,
а не какой-то конкретный объект этого типа. Экземпляр,
созданный с помощью new, — это настоящий объект.
Raku умеет их различать. Метод defined возвращает
False для объекта типа и True для
экземпляра:
class Dog {
}
say Dog.defined; # False
say Dog.new.defined; # TrueОбъект типа считается неопределённым, потому что не содержит конкретных данных — это лишь описание типа. Экземпляр же определён: это настоящий объект.
Оба сообщают один и тот же тип через WHAT, с которым вы
встречались в разделе о
контейнерах:
class Dog {
}
say Dog.WHAT; # (Dog)
say Dog.new.WHAT; # (Dog)Круглые скобки вокруг (Dog) — это принятый в Raku способ
показать тип. Итак, Dog и Dog.new имеют один и
тот же тип Dog; разница в том, что одно — это сам тип, а
другое — объект этого типа.
Практика
Пройдите 1 тест по содержанию этой темы.
Навигация по курсу
← Классы | Тест — Классы →
💪 Или перейдите сразу к
упражнениям этого раздела.