Как уже упоминалось, Объект является представлением некоторой, вполне реально существующей вещи, такой как документ или жесткий диск, и у него имеются свойства, которые представляют реальные признаки вещей. Например, объект яблоко может иметь такие признаки, как цвет или кислый вкус.
Фактические данные, сохраняемые для цвета, могут быть строкой символов, например "red" (красное) или "green" (зеленое). Кислый вкус может быть представлен числом от 0 (сладкое как сахар) до 10 (слезу вышибает).
Объект, описывающий файл на жестком диске, может иметь такие свойства, как имя — name (символьная строка) и размер — size (число). Объект, представляющий жесткий диск, может иметь свойства, описывающие объем жесткого диска, имя тома, а также информационное наполнение диска. Теперь содержимое жесткого диска может быть представлено в виде списка имен файлов или массива строковых значений. Но, возможно, полезнее будет, если жесткий диск сможет выдать список объектов file, которые затем можно будет использовать для работы с самими файлами. Именно так и работают многие объекты. Там, где это возможно, объекты могут вернуть ссылки на другие объекты. Когда объект должен предоставить вам несколько других объектов, он выдаст вам специальный объект, который называется Коллекцией — он хранит внутри себя произвольное число других объектов. Например, объект Folder может представлять папку на вашем жестком диске, и его свойство Files может выдавать коллекцию объектов File, которые, как это показано на рис. 3.3, представляют каждый файл в папке. Объект-коллекция может содержать внутри себя объекты Любого типа, и у него самого есть свои свойства и методы, позволяющие вести подсчет этих объектов, а также извлекать их и работать с ними. «Контейнер» объектов, содержащий другие объекты любого произвольного типа, — обычное явление в объектно-ориентиро — ванном программировании.