|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Тема 1. Повторення загальних принципів об’єктно-орієнтованого програмуванняНа жаль, вивчення й обговорення методів ООП найчастіше ведеться тільки з погляду рівня реалізації – у термінах програмного коду і даних, а не з позицій концептуального рівня або рівня визначення специфікацій. Оскільки об'єкти мають обов'язки і несуть повну відповідальність за свої дії, обов'язково повинний існувати спосіб керувати ними – тобто вказувати, що необхідно зробити. Не забувайте, що об'єкт містить дані, що описують його поточний стан, і методи, що реалізують його функціональність. Деякі методи об'єкта ідентифікуються як методи, доступні для інших об'єктів. Набір цих методів визначає відкритий інтерфейс об'єкта (publіc іnterface). Клас є визначенням лінії поведінки об'єкта. Він містить повний опис наступних елементів: - усіх елементів даних, що входять до складу об'єкта; - усіх методів, які об'єкт здатний виконувати; - необхідних способів доступу до наявних елементів даних і методів. Оскільки елементам даних, що утримуються в об'єкті, можна привласнювати різні значення, об'єкти того самого класу будуть містити різні набори конкретних значень даних, але, у той же час, володіти однієї і тією же функціональністю (реалізованою методами). Щоб одержати доступ до об'єкта, попередньо варто повідомити програму, що необхідно новий об'єкт визначеного типу (тобто того класу, до якого відноситься цей об'єкт). Створюваний новий об'єкт одержує назву екземпляра класу. Створення екземпляра класу називається його реалізацією. Абстрактні класи визначають поведінку інших, родинних їм класів. Ці «інші» класи представляють специфічний тип родинного поводження. Такий клас зазвичай називають конкретним класом, оскільки він представляє особливу визначену, фіксовану реалізацію загальної концепції. Зі спадкуванням тісно зв'язаний ще один важливий механізм проектування сімейства класів – механізм абстрактних класів. Визначення. Клас називається абстрактним, якщо він має хоча б один абстрактний метод. Визначення. Метод називається абстрактним, якщо при визначенні методу задана його сигнатура, але не задана реалізація методу. Оголошення абстрактних методів і абстрактних класів має супроводжуватися модифікатором abstract. Оскільки абстрактні класи не є повністю визначеними класами, не можна створювати об'єкти абстрактних класів. Абстрактні класи можуть мати нащадків, які частково або повністю реалізують абстрактні методи батьківського класу. Абстрактний метод є віртуальним методом, перевизначеним нащадком, тому до нього застосовується стратегія динамічного зв'язування. На концептуальному рівні абстрактні класи – це просто паттерни для створення інших класів. Отже, за допомогою абстрактного класу просто привласнюється власна назва деякій множині родинних класів. Це дозволить розглядати дану множину як єдину концепцію. Оскільки об'єкти несуть повну відповідальність за власну поведінку, існує безліч елементів, доступ до яких з боку інших об'єктів вони дозволяти не зацікавлені. Раніше вже згадувалося поняття відкритий інтерфейс (publіc іnterface) – воно охоплює всі методи об'єкта, доступні для будь-яких інших об'єктів. В ООП існує кілька рівнів доступу до елементів об'єктів. Можливими модифікаторами в оголошенні класу можуть бути модифікатори abstract, virtual і чотири модифікатора доступу, два з яких – private і protected – можуть бути задані тільки для вкладених класів. За замовчуванням клас має атрибут доступу internal. Щоб зробити клас доступним не тільки класам одного проекту, його явно потрібно оголосити з атрибутом public. В простих випадках оголошення класу може виглядати так (С#): public class Rational { тіло_класу } У тілі класу можуть бути оголошені: константи; поля; конструктори і деструктори; методи; події; класи (структури, делегати, інтерфейси, перерахування). Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |