Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
+++++++ООП_КН. doc.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
94.72 Кб
Скачать

Об'єктно-орієнтовані мови

Багато сучасних мов спеціально створено для полегшення об'єктно-орієнтованого програмування. Проте слід зазначити, що можна застосовувати техніку ООП і для не-объектно-ориентированного мови і навпаки, застосування об'єктно-орієнтованої мови зовсім не означає, що код автоматично стає об'єктно-орієнтованим.

Сучасна об'єктно-орієнтована мова пропонує, як правило, наступний обов'язковий набір синтаксичних засобів:

  • Оголошення класів з полями (даними — членами класу) і методами (функціями — членами класу).

  • Механізм розширення класу (спадкоємство) — породження нового класу від того, що існує з автоматичним включенням всіх особливостей реалізації класу-предка до складу класу-нащадка. Більшість ООП- підтримують тільки одиничне спадкоємство.

  • Поліморфні змінні і параметри функцій (методів), що дозволяють привласнювати одній і тій же змінній екземпляри різних класів.

  • Поліморфна поведінка екземплярів класів за рахунок використання віртуальних методів. У деяких ООП- всі методи класів є віртуальними.

Мабуть, за мінімальну традиційну об'єктно-орієнтовану мову можна вважати мову Оберон, який не містить ніяких інших об'єктних засобів, окрім вищеперелічених (у початковому Обероне навіть немає окремого ключового слова для оголошення класу, а також відсутні явно описувані методи, їх замінюють поля процедурного типу). Але більшість мов додають до вказаного мінімального набору ті або інші додаткові засоби. У їх числі:

Конструктори, деструкції, финализаторы.

Властивості (аксесори).

  • Індексатори.

  • Інтерфейси (наприклад, в Java використовуються також як альтернатива множинному спадкоємству — будь-який клас може реалізувати скільки завгодно інтерфейсів).

  • Перевизначення операторів для класів.

  • Засоби захисту внутрішньої структури класів від несанкціонованого використання ззовні. Звичайно це модифікатори доступу до полів і методів, типу public, private, зазвичай також protected, іноді деякі інші.

Частина мов (іноді званих «чисто об'єктними») цілком побудована навколо об'єктних засобів — в них будь-які дані (можливо, за невеликим числом виключень у вигляді вбудованих скалярних типів даних) є об'єктами, будь-який код — методом якого-небудь класу, і неможливо написати програму, в якій не використовувалися б об'єкти. Приклади подібних мов — Smalltalk, Python, Java, C#, Ruby, AS3. Інші мови (іноді використовується термін «гібридні») включають ООП-підсистему в початково процедурну мову. У них існує можливість програмувати, не звертаючись до об'єктних засобів. Класичні приклади — C++, Delphi і Perl.