Класи i методи
Автор: Game King • Апрель 13, 2023 • Лабораторная работа • 3,821 Слов (16 Страниц) • 123 Просмотры
Лабораторна робота №2
ТЕМА: КЛАСИ І МЕТОДИ
Клас відповідає типу даних як опис сукупності об'єктів предметної області програми із загальними атрибутами, методами, відносинами та семантикою.
Об'єкт — набір даних, що володіє ім'ям (полів і властивостей об'єкта) та методів, що мають доступ до них. Ім'я об'єкта використовується для роботи з його полями та методами.
Будь-який об'єкт відноситься до певного класу. У класі надається узагальнений опис деякого набору родинних об'єктів.
Об'єкт – конкретний екземпляр класу.
Об'єкт – логічна модель реальної сутності.
Об'єктно-орієнтоване програмування - це методологія програмування, заснована на використанні класів та об'єктів.
В ООП використовуються принципи:
- інкапсуляції;
- успадкування;
- Поліморфізму, зокрема, «пізнього зв'язування».
Інкапсуляція (encapsulation) - принцип, що поєднує дані та код, що захищає дані від прямого зовнішнього доступу та неправильного використання. Іншими словами, доступ до даних класу повинен здійснюватися, відповідно до принципів інкапсуляції, лише за допомогою методів цього ж класу.
Упадкування (inheritance) - процес, за допомогою якого один клас може успадковувати поля та методи іншого класу, змінювати їх та додавати до них поля та методи, характерні лише для його стану та поведінки.
Успадкування буває двох видів:
• одиночне успадкування - підклас (похідний клас) має один і лише один суперклас (предок);
• множинне успадкування - клас може мати будь-яку кількість підкласів. В Java для класів заборонено, а для інтерфейсів дозволено.
Поліморфізм (polymorphism) — механізм, який використовує ту саму
сигнатуру методу для вирішення схожих, але дещо відмінних завдань у різних класах при успадкування від суперкласу. Метою поліморфізму є використання одного імені при виконанні загальних для суперкласу та підкласів дій. Це необхідно для створення загального інтерфейсу для близьких за змістом дій.
Механізм "пізнього зв'язування" або "динамічного поліморфізму" у процесі виконання програми визначає належність об'єкта конкретному класу та здійснює виклик методу, що відноситься до класу, об'єкт якого було використано. Механізм «пізнього зв'язування» дозволяє визначати версію поліморфного (віртуального) методу під час виконання програми, тобто неможливо на етапі компіляції визначити, яка версія перевизначеного методу буде викликана на етапі виконання програми.
Парадигма: "об'єкт підкласу може використовуватися усюди, де використовується об'єкт суперкласу". Тобто, при додаванні до ієрархії класів нового підкласу існуючий код з екземпляром нового підкласу буде працювати так само, як і з усіма іншими екземплярами класів в ієрархії.
При виклику методу спочатку він буде шукатися в самому класі. Якщо метод існує, він викликається. Якщо ж метод у поточному класі відсутній, то звернення відбувається до батьківського класу, і метод, що викликається, буде шукатися в цьому класі. Якщо пошук невдалий, він триває вгору по ієрархічному дереву до кореня (суперкласу всіх класів, класу Object) ієрархії.
Класи - основний елемент абстракції, який відповідає за реалізацію призначеного йому договору і забезпечує приховування реалізації. Класи об'єднуються в пакети, які пов'язані один з одним лише через обмежену кількість методів та класів. Ім'я класу в пакеті має бути унікальним. Фізично пакет є каталогом, в який поміщаються файли з розширенням java, що містять реалізацію класів.
Класи дозволяють провести декомпозицію поведінки складної системи до безлічі елементарних взаємодій пов'язаних об'єктів. Клас визначає структуру та/або поведінку деякого елемента предметної області.
...