Interested Article - Объект (программирование)
- 2020-07-29
- 1
Объе́кт в программировании — сущность в цифровом пространстве, обладающая состоянием и поведением, имеющая поля и методы . Как правило, при рассмотрении объектов выделяется то, что объекты принадлежат одному или нескольким классам , которые определяют поведение (являются моделью ) объекта. Термины « экземпляр класса » и «объект» взаимозаменяемы . Аналогия: объект — то, что сделали по чертежу, класс — это чертёж.
Объект, наряду с понятием класс , является важным понятием объектно-ориентированного подхода . Объекты обладают свойствами наследования , инкапсуляции и полиморфизма .
Термин объект в программном обеспечении впервые был введен в языке Simula и применялся для моделирования реальности .
Связанные понятия
Экземпляр класса ( англ. 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
.
Примечания
- ↑ . Дата обращения: 9 октября 2009. 1 декабря 2009 года.
- (недоступная ссылка с 14-06-2016 [2785 дней])
Литература
- Гради Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на C++. — Бином, 1998. — ISBN 0-8053-5340-2 , ISBN 5-7989-0067-3 , ISBN 5-7940-0017-1 .
- 2020-07-29
- 1