Объе́кт в программировании — сущность в цифровом пространстве, обладающая состоянием и поведением, имеющая поля и методы. Как правило, при рассмотрении объектов выделяется то, что объекты принадлежат одному или нескольким классам, которые определяют поведение (являются моделью) объекта. Термины «экземпляр класса» и «объект» взаимозаменяемы[1]. Аналогия: объект — то, что сделали по чертежу, класс — это чертёж.

Объект, наряду с понятием класс, является важным понятием объектно-ориентированного подхода. Объекты обладают свойствами наследования, инкапсуляции и полиморфизма[2].

Термин объект в программном обеспечении впервые был введен в языке Simula и применялся для моделирования реальности[1].

Связанные понятия

править

Экземпляр класса (англ. instance) — это описание конкретного объекта в памяти. Класс описывает поля и методы, которые будут доступны у объекта, построенного по описанию, заложенному в классе. Экземпляры используются для представления (моделирования) конкретных сущностей реального мира. Например, экземпляром класса стиральных машин может быть ваша стиральная машина, имеющая следующие свойства: компания-производитель «Вятка», наименование модели «Вятка-автомат», серийный номер изделия ВЯТ454647, ёмкость 20 л. В отличие от имени класса, имя экземпляра обычно начинается со строчной буквы.

Инстанцирование (англ. instantiation) — создание экземпляра класса. В отличие от слова «создание», применяется не к объекту, а к классу. То есть, говорят: (в виртуальной среде) создать экземпляр класса или, другими словами, инстанцировать класс. Порождающие шаблоны используют полиморфное инстанцирование.

Анонимный объект (англ. anonymous object) — это объект, который принадлежит некоторому классу, но не имеет имени.

Инициализация (англ. initialization) — присвоение начальных значений полям объекта.

Время жизни объекта — время с момента создания объекта (конструкция) до его уничтожения (деструкция).

Практический подход

править

За исключением прототипно-ориентированных языков вроде Lua и JavaScript, где понятие «класс» не используется вовсе, в большинстве объектно-ориентированных языков программирования (таких как Java, C++ или C#), объекты являются экземплярами некоторого заранее описанного класса.

Объекты в таких языках создаются с помощью конструктора класса и уничтожаются либо с помощью деструктора класса (например, в C++), либо автоматически с использованием сборщика мусора — например, в Java и C# (C# поддерживает деструкторы, но они вызываются сборщиком мусора), либо используя внутренний счётчик ссылок на объект и сообщения («dealloc» в Objective-C). Объект хранится в виде данных всех его полей и ссылок на таблицу виртуальных методов и RTTI своего класса. Класс определяет набор функций и служебной информации для построения объекта, в том числе необходимый объём памяти для хранения объекта.

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

Пример кода

править

Пример создания нового объекта и работы с ним в языке программирования Java:

  // Создание экземпляра класса ArrayList с именем list
  ArrayList list = new ArrayList();
  
  // Добавление экземпляров класса Integer в объект list
  list.add(new Integer(1));
  list.add(new Integer(2));
  list.add(new Integer(3));

Подразумевается, что класс ArrayList уже описан в программном коде и его описание содержит определение для конструктора класса и метода add.

Примечания

править

Литература

править
  • Гради Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на C++. — Бином, 1998. — ISBN 0-8053-5340-2, ISBN 5-7989-0067-3, ISBN 5-7940-0017-1.

📚 Artikel Terkait di Wikipedia

Одиночка (шаблон проектирования)

Singleton instance; private Singleton () {}; public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; }

Сиквел

focus on the action that took place before the original narrative. For instance, in Star Wars: Episode III – Revenge of the Sith the audience learns about

Непризнанные и частично признанные государства

of any sort.». Geldenhuys, 2009, p. 24: «Contested states in the fourth instance typically have the ability and desire to enter into the standard array

Символ бесконечности

the quest to think the unthinkable, Robinson, ISBN 9781841196503 See for instance Cor. 1 p. 174 in: Leonhard Euler. Variae observationes circa series infinitas

Бельгия

инстанции (нид. Rechtbank van eerste aanleg, фр. Tribunal de première instance), состоящий из палаты по гражданским вопросам (нид. kamer voor burgerlijke

Машинное обучение

«ситуация — требуемое решение» Многовариантное обучение (англ. multiple-instance learning) — обучение, когда прецеденты могут быть объединены в группы,

Закулисье

коридорам ме́ста, где обычно кипит жизнь. Оригинальный текст (англ.) For instance, maybe a parent was working late at the office one night and left us to

Java

упомянутыми функциями объекта типа Class используются также функции isInstance (эквивалентно instanceof), а также cast() (преобразует параметр в объект