Об'єкт в об'єктно-орієнтованому програмуванні (ООП) — ключове поняття об'єктно-орієнтованих технологій проєктування та програмування; втілення абстрактної моделі окремої сутності (предмету або поняття), що має чітко виражене функціональне призначення в деякій області, належить до визначеного класу та характеризується своїми властивостями та поведінкою. Об'єкти є базовими елементами побудови програми — програма в ООП розглядається як сукупність об'єктів, що знаходяться у визначених відношеннях та обмінюються повідомленнями.
Поняття об'єкт в програмному забезпеченні вперше було введене в мові Simula в середині 1960-х років для моделювання реальності.
Властивості та поведінка об'єкта
Властивості об'єкта визначаються його атрибутами (полями даних). Поточне значення атрибутів визначає поточний стан об'єкта у множині можливих станів.
Поведінка об'єкта визначається функціями (методами) об'єкта. Передача повідомлень між об'єктами (взаємодія об'єктів) призводить до виконання об'єктом, що отримав повідомлення, визначеної функції. Об'єкт також може надіслати повідомлення собі. В результаті отримання об'єктом повідомлення він змінює свій стан: на новий, якщо виконання операцій функції призвело до зміни значень атрибутів; або той самий, якщо атрибути не зазнали змін. В контексті отримання повідомлень та зміни станів об'єкт може розглядатись як автомат.
Загалом, поведінка та властивості об'єкта визначають його , що вирізняє об'єкт серед інших об'єктів.
Характеристики об'єктів
Об'єкти створюються у програмі під час її виконання і, зазвичай, існують у межах програми, але, в окремих випадках, можуть існувати й поза межами програми — наприклад, у вигляді файлів або пакетів даних. Механізми, що дозволяють існування об'єктів поза межами програми, підтримуються окремими ОО-мовами програмування.
Властивості об'єкта, зазвичай, доступні лише через його функції. При цьому вважається, що об'єкт є екземпляром класу як абстрактного типу даних. В окремих випадках, що, загалом, порушують принципи ООП, властивості об'єкта можуть бути загальнодоступними. Такі властивості, як правило, є константами.
Відповідно до властивостей об'єкта та його стану, функції поділяються на конструктори, селектори, модифікатори та деструктори:
- конструктори здійснюють первинну ініціалізацію об'єкта під час його створення;
- селектори повертають значення окремих властивостей;
- модифікатори змінюють значення окремих властивостей;
- деструктори скидають значення властивостей під час знищення об'єкта.
Представлення об'єктів
Об'єкти, зазвичай, зберігаються в оперативній пам'яті під час виконання програми. При цьому вони представлені в пам'яті послідовністю значень атрибутів — структурою даних. Всі функції об'єктів зберігаються поза межами об'єктів і для функцій лише забезпечується контекст — можливість звернення до атрибутів вказаного об'єкта. В окремих ОО-мовах програмування дані об'єкта або об'єктів в пам'яті можуть бути перенесені поза межі пам'яті програми, наприклад — у зовнішній файл, і в подальшому — поновлені. При цьому об'єкт опиниться в тому ж стані, в якому він перебував на момент збереження.
Статичні (спільні для всіх об'єктів класу) атрибути об'єктів зберігаються поза межами структур даних об'єктів і не впливають на їх розмір у пам'яті.
Приклади
Мова C#
//Визначення класу об'єкта: class Person { public string Name; public int Age; public Person(string name, int age) { Name = name; Age = age; } } // Визначення об'єкта: Person person = new Person("John Doe", 21);
Мова C++
// Визначення класу об'єкта: class Person { public: Person(string name, int age); int getName() const; private: string name; int age; }; // Визначення об'єкта: Person johnDoe("John Doe", 21);
Див. також
Примітки
- What Is an Object?
- Бьерн Страуструп. Язык программирования С++ // Раздел 1. Абстракция данных
- Гради Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++ // Глава 3. Классы и объекты
- Ole-Johan Dahl. The Roots of Object Orientation: The Simula Language
Джерела
- Хассан Гома. UML. Проектирование систем реального времени, распределенных и параллельных приложений / ДМК, М.: 2016.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет