Page 31 - 6253
P. 31
стати набором повідомлень, які передаються між об’єктами. Таким чином, кожний із
об’єктів описує власну унікальну поведінку, відповідаючи на повідомлення
виконати певну дію. В цьому і полягає суть ООП.
Інкапсуляція та передавання повідомлень
Інкапсуляція (encapsulation – в перекладі «герметизація») – це механізм, який
зв’язує код і дані, захищаючи у цьому випадку їх від зовнішнього пошкодження і
некоректного використання. Це захисна оболонка, яка забороняє довільний доступ
іншому кодові, зовнішньому щодо даного. Доступ до даних і коду суворо
контролюється інтерфейсом. Кожний знає як доступитися до даних, не
задумуючись над деталями реалізації коду.
У мові Java основою інкапсуляції є клас. Клас визначає структуру суті,
створеної даними і кодом, і поведінку цієї суті, яка, використовуючи визначення
класу, може втілюватися у багатьох об’єктах. Кожний об’єкт класу повторює
структуру і поведінку, визначену класом, так ніби його відлили за допомогою форми
у вигляді класу. Тому об’єкти називаються екземплярами класу. Клас є логічною
конструкцією, а об’єкт – його фізичним втіленням. При створенні класу
визначаються дані і код. Зокрема, дані називають змінними класу, а код, який
виконується над цими даними – методами класу. Поведінку та інтерфейс класу
визначають методи, які опрацьовують дані екземпляру класу. Кожний метод або
змінну визначають як внутрішні або загальнодоступні. Якщо доступ до власних
членів класу збоку інших частин програми можна отримати тільки через
загальнодоступні методи, то можна вважати, що принцип інкапсуляції цілковито
реалізовано.
Наслідування
Усі об’єкти реального світу можна впорядкувати в певний ієрархічний ряд
(зверху донизу). Наприклад, автомобіль «Таврія» належить до класу легкових
автомобілів, які є автомобілями, які належать до більш узагальненого поняття «засіб
руху». Кожний рівень ієрархічного ряду має свої специфічні характеристики. Якщо
не застосовувати принцип наслідування, то для кожного об’єкта з найнижчого рівня
треба було б визначати усі характеристики заново.
30