developing.ru - клуб программистов Здесь может быть и ваша реклама.
developing.ru >технология COM >

Экземпляры объектов и статические типы

Объект в его классическом ООП-понимании имеет две ипостаси:

  1. класс, реализующий данные и методы объекта
  2. структура «данные + код», организованная в памяти машины.

Очевидно, что структур 2, отталкиваясь от одного класса 1, можно создать сколько угодно. Структура 2 часто называется "экземпляр класса" и именно она является тем самым "истинным объектом". Классы же являются только шаблонами, по которым создаются эти объекты. Но классы, сами не будучи строгими объектами, определяют всё поведение объектов - два экземпляра, созданные из одного класса будут различаться только адресами в памяти. И это будут - разные объекты. Два же полностью совпадающих класса в точности равны, у классов нет экземпляров, зато есть имена. Поэтому классы правильнее бы называть "статическими типами" подчёркивая этим, что тип определяется не самим объектом, но его шаблоном - во время жизни в памяти объект может изменяться, а класс - уже нет.

Развёрнутый в памяти объект однозначно характеризуется его адресом. Не развернутый, а только могущий быть развернутым объект адреса не имеет, поэтому статические типы имеют имена, а экземпляры статических типов - адреса.


© 2000-2004 Клуб программистов developing.ru