Топ питань
Часова шкала
Чат
Перспективи
Об'єкт (програмування)
З Вікіпедії, вільної енциклопедії
Remove ads
Об'єкт в об'єктно-орієнтованому програмуванні (ООП) — ключове поняття об'єктно-орієнтованих технологій проєктування та програмування[1]; втілення абстрактної моделі[2] окремої сутності (предмету або поняття), що має чітко виражене функціональне призначення в деякій області, належить до визначеного класу та характеризується своїми властивостями та поведінкою[3]. Об'єкти є базовими елементами побудови програми — програма в ООП розглядається як сукупність об'єктів, що знаходяться у визначених відношеннях та обмінюються повідомленнями.
Поняття об'єкт в програмному забезпеченні вперше було введене в мові Simula в середині 1960-х років для моделювання реальності[4].
Remove ads
Властивості та поведінка об'єкта
Властивості об'єкта визначаються його атрибутами (полями даних). Поточне значення атрибутів визначає поточний стан об'єкта у множині можливих станів.
Поведінка об'єкта визначається функціями (методами) об'єкта. Передача повідомлень між об'єктами (взаємодія об'єктів) призводить до виконання об'єктом, що отримав повідомлення, визначеної функції. Об'єкт також може надіслати повідомлення собі. В результаті отримання об'єктом повідомлення він змінює свій стан: на новий, якщо виконання операцій функції призвело до зміни значень атрибутів; або той самий, якщо атрибути не зазнали змін. В контексті отримання повідомлень та зміни станів об'єкт може розглядатись як автомат.
Загалом, поведінка та властивості об'єкта визначають його ідентичність, що вирізняє об'єкт серед інших об'єктів.
Remove ads
Характеристики об'єктів
Об'єкти створюються у програмі під час її виконання і, зазвичай, існують у межах програми, але, в окремих випадках, можуть існувати й поза межами програми — наприклад, у вигляді файлів або пакетів даних. Механізми, що дозволяють існування об'єктів поза межами програми, підтримуються окремими ОО-мовами програмування.
Властивості об'єкта, зазвичай, доступні лише через його функції. При цьому вважається, що об'єкт є екземпляром класу як абстрактного типу даних. В окремих випадках, що, загалом, порушують принципи ООП, властивості об'єкта можуть бути загальнодоступними. Такі властивості, як правило, є константами.
Відповідно до властивостей об'єкта та його стану, функції поділяються на конструктори, селектори, модифікатори та деструктори:
- конструктори здійснюють первинну ініціалізацію об'єкта під час його створення;
- селектори повертають значення окремих властивостей;
- модифікатори змінюють значення окремих властивостей;
- деструктори скидають значення властивостей під час знищення об'єкта.
Remove ads
Представлення об'єктів
Об'єкти, зазвичай, зберігаються в оперативній пам'яті під час виконання програми. При цьому вони представлені в пам'яті послідовністю значень атрибутів — структурою даних. Всі функції об'єктів зберігаються поза межами об'єктів і для функцій лише забезпечується контекст — можливість звернення до атрибутів вказаного об'єкта. В окремих ОО-мовах програмування дані об'єкта або об'єктів у пам'яті можуть бути перенесені поза межі пам'яті програми, наприклад — у зовнішній файл, і надалі — поновлені. При цьому об'єкт опиниться в тому ж стані, в якому він перебував на момент збереження.
Статичні (спільні для всіх об'єктів класу) атрибути об'єктів зберігаються поза межами структур даних об'єктів і не впливають на їх розмір у пам'яті.
Приклади
Мова 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);
Remove ads
Див. також
Примітки
Джерела
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads