logo
ООП для Заоч / Пинчук Лозовская Программир на С

2.1. Об'єкти та їхні атрибути

Одним з базових понять сучасного програмування є поняття об'єкта. Для того, щоб пояснити його, згадаємо, що комп'ютерну програму можна уявляти собі як деякий механізм, основним призначенням якого є обробка інформації. Існує такий закон: оброблювана комп'ютерами інформація завжди структурована. Тобто вона являє собою набір (або потік) інформаційних одиниць певних типів. Тип інформаційної одиниці є комплексною характеристикою, яка визначає її семантику й основні атрибути: розмір, спосіб бінарного кодування та ін. Об'єктом називають область оперативної пам'яті, яку виділено для збереження інформаційної одиниці певного типу. Значенням об’єкту є саме інформаційна одиниця, що розташована в об'єкті.

Важливим моментом тут є те, що об'єкт - це область пам'яті, що асоціюється з деяким наперед визначеним типом значень - інформаційних одиниць. Сучасні мови програмування дозволяють мати справу з об'єктами, що мають часом досить складну структуру. В складних програмах об'єкт іноді можна уявляти собі як інформаційну модель деякої сутності. Поміщена в такий об'єкт інформаційна одиниця визначає стан (а можливо й поведінку) цієї самої сутності.

З об'єктом зв'язують 5 атрибутів: адреса, розмір, ідентифікатор, значення і тип. Адресою об'єкта є адреса його першого байта. Розміром об'єкта вважають кількість байтів оперативної пам’яті, які він займає. Ідентифікатор являє собою ім'я об'єкта. Значення об'єкта - це поміщена в нього інформаційна одиниця. Значення заноситься в об'єкт шляхом виконання таких операцій, як присвоєння, ініціалізація, введення значення із зовнішнього середовища.

Тип об'єкта є комплексним атрибутом, він визначає:

- множину (або діапазон) можливих значень об'єкта;

- спосіб двійкового подання значення;

- набір припустимих операцій над значенням об'єкта й правила (алгоритми) їх виконання;

- розмір об'єкта.

Об’єкти можуть бути глобальними та локальними.

Оголошення глобального об’єкта записується поза межами будь-якої функції. Створюються глобальні об’єкти до початку роботи функції main, а знищуються після завершення роботи функції main. Розміщуються вони у сегментах даних виконуваного коду програми.

Об’єкти, оголошення яких записано у тілі будь-якої функції, належать до категорії локальних об’єктів. Локальний об’єкт створюється при виконанні його оголошення і знищується при виході з поточного блоку. Розташовуються локальні об'єкти як правило у сегменті стека коду програми.

Операції створення і вилучення глобальних і локальних об'єктів виконуються програмою автоматично шляхом виклику спеціальних функцій - конструкторів та деструкторів.

Як глобальні, так і локальні об’єкти можуть бути динамічними і не динамічними. У попередніх абзацах мова йшла про не динамічні об’єкти. Динамічні об'єкти створюються спеціальними операціями new і new[] та знищуються при виконанні операцій delete і delete[]. Розміщуються вони в купі (в області оперативної пам'яті, яка розподіляється динамічно або heap-області пам’яті).

В об’єктно-орієнтованому програмуванні об'єкт є структурованим, він може включати деякий набір різнотипних одиниць даних та функцій. Компонентом об’єкту може бути теж деякий об’єкт. Об’єкти - компоненти об'єкту можуть мати різні (і будь-які) типи. Призначенням функцій, які входять до складу об’єкту, є виконання певних дій з компонентами-даними об'єкта.