МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах
РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ" ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах Гендерна антидискримінаційна експертиза може зробити нас моральними рабами ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів Контакти
Тлумачний словник |
|
|||||||
Визначити ООП можна і багатьма іншими способами.Поява в ООП окремого поняття класу закономірно випливає з бажання мати безліч об'єктів з подібним поведінкою. Клас в ООП - це в чистому вигляді абстрактний тип даних , створюваний програмістом. З цієї точки зору об'єкти є значеннями даного абстрактного типу , а визначення класу задає внутрішню структуру значень і набір операцій , які над цими значеннями можуть бути виконані. Бажаність ієрархії класів ( а значить , успадкування) випливає з вимог до повторного використання коду - якщо кілька класів мають подібну поведінку , немає сенсу дублювати їх опис , краще виділити загальну частину в загальний батьківський клас, а в описі самих цих класів залишити тільки розрізняються елементи . Необхідність спільного використання об'єктів різних класів , здатних обробляти однотипні повідомлення , вимагає підтримки поліморфізму - можливості записувати різні об'єкти в змінні одного і того ж типу. У таких умовах об'єкт , відправляючи повідомлення , може не знати в точності , до якого класу належить адресат , і одні й ті ж повідомлення , відправлені змінним одного типу , що містить об'єкти різних класів , викличуть різну реакцію. Окремої пояснень потребує поняття обміну повідомленнями. Спочатку (наприклад, в тому ж Smalltalk ) взаємодія об'єктів уявлялося як «справжній» обмін повідомленнями , тобто пересилання від одного об'єкта іншому спеціального об'єкта -повідомлення. Така модель є надзвичайно загальною . Вона прекрасно підходить , наприклад , для опису паралельних обчислень за допомогою активних об'єктів , кожен з яких має власний потік виконання і працює одночасно з іншими. Такі об'єкти можуть вести себе як окремі , абсолютно автономні обчислювальні одиниці. Посилка повідомлень природним чином вирішує питання обробки повідомлень об'єктами , присвоєними поліморфним змінним - незалежно від того , як оголошується змінна , повідомлення обробляє код класу , до якого належить присвоєний змінної об'єкт. Однак спільність механізму обміну повідомленнями має й інший бік - «повноцінна» передача повідомлень вимагає додаткових накладних витрат , що не завжди прийнятно. Тому в більшості нині існуючих об'єктно- орієнтованих мов програмування використовується концепція « відправка повідомлення як виклик методу» - об'єкти мають доступні ззовні методи , викликами яких і забезпечується взаємодія об'єктів. Даний підхід реалізований у величезній кількості мов програмування , в тому числі C + + , Object Pascal , Java , Oberon - 2 . На даний момент саме він є найбільш поширеним в об'єктно - орієнтованих мовах . Концепція віртуальних методів , підтримувана цими та іншими сучасними мовами , з'явилася як засіб забезпечити виконання потрібних методів при використанні поліморфних змінних , тобто , по суті , як спроба розширити можливості виклику методів для реалізації частини функціональності , забезпечується механізмом обробки повідомлень. Читайте також:
|
||||||||
|