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