В упражнении с коллекциями я спросил, может ли переменная homeAddress быть коллекцией. Если вы ответили «да», ваша ошибка вполне понятна. До сих пор единственный виденный вами тип значения, который имеет несколько членов, — это коллекция.

Теперь мы рассмотрим другой тип значения, называемый объектом. Вместо того, чтобы давать вам формальное определение объекта, позвольте мне привести вам иллюстрацию того, что мы видим в реальном мире, что мы могли бы смоделировать как объект.

Автомобиль — это сущность, которая имеет отдельные свойства:

  • 1 двигатель
  • 4 колеса
  • 1 руль
  • 2 (или 4) двери
  • 1 передача

Есть ли у автомобиля несколько элементов — что, как мы сказали, отличает коллекции? Да, но в случае с автомобилем все элементы являются неотъемлемыми свойствами автомобиля. С коллекцией bookClub вы можете добавлять или удалять элементы из коллекции, не изменяя фундаментальную природу bookClub. С машиной не так. Удалите один из этих элементов, и характер автомобиля изменится.

По этой причине, когда программисты разрабатывают приложение (то, что мы называем архитектурой), мы пытаемся найти тип значения, который лучше всего соответствует реальному аналогу. Могли бы сделать из автомобиля коллекцию? Я полагаю, но если бы вы это сделали, вы бы быстро поняли, почему объекты были созданы в первую очередь.

Объект в программировании — это нечто, состоящее из нескольких частей (или свойств). Если вы подумаете об этом, вы увидите, что у одного объекта может быть огромное количество свойств. Решаем ли мы включать все это при создании объектов? Нет. Мы используем только те, которые важны для нашего приложения.

Для клиента, например, мы хотим знать его домашний адрес, но не его любимую еду или где он был женат. Знание того, что важно, а что нет, является частью искусства компьютерного программирования.

Упражнение на предметах

Для следующих объектов определите несколько свойств, которыми должен обладать каждый объект. Например, для фильма у вас могут быть следующие свойства:

  • длина
  • жанр
  • директор
  • заглавие
  • рейтинг

Но это вы, вероятно, пропустите:

  • количество дополнений
  • сколько минут фильма было вырезано
  • дети директора