Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Об'єктна реалізація поліморфного контейнера на основі лінійного списку

Реферат Об'єктна реалізація поліморфного контейнера на основі лінійного списку





овуватися один від одного. Клас-нащадок отримує всі поля і методи класу-батька, але може доповнювати їх власними або перевизначати вже наявні. Більшість мов програмування підтримує тільки одиничне успадкування (клас може мати тільки один клас-батько), лише в деяких допускається множинне спадкування - породження класу від двох або більше класів-батьків. Множинне успадкування створює цілий ряд проблем, як логічних, так і чисто реалізаційних, тому в повному обсязі його підтримка не поширена. Замість цього в 1990-і роки з'явилося і стало активно вводитися в об'єктно-орієнтовані мови поняття інтерфейсу. Інтерфейс - це клас без полів і без реалізації, що включає тільки заголовки методів. Якщо якийсь клас успадковує (або, як кажуть, реалізує) інтерфейс, він повинен реалізувати всі вхідні в нього методи. Використання інтерфейсів надає відносно дешеву альтернативу множинного спадкоємства.

Взаємодія об'єктів в абсолютній більшості випадків забезпечується викликом ними методів один одного.

Інкапсуляція забезпечується наступними засобами:

Контроль доступу. Оскільки методи класу можуть бути як чисто внутрішніми, що забезпечують логіку функціонування об'єкта, так і зовнішніми, за допомогою яких взаємодіють об'єкти, необхідно забезпечити прихованість перше при доступності ззовні других. Для цього в мови вводяться спеціальні синтаксичні конструкції, явно задають область видимості кожного члена класу. Традиційно це модифікатори public, protected і private, що позначають, відповідно, відкриті члени класу, члени класу, доступні тільки з класів-нащадків і приховані, доступні тільки усередині класу. Конкретна номенклатура модифікаторів і їх точний зміст різняться в різних мовах.

Методи доступу. Поля класу, в загальному випадку, не повинні бути доступні ззовні, оскільки такий доступ дозволив би довільним чином змінювати внутрішній стан об'єктів. Тому поля зазвичай оголошуються прихованими (або мова в принципі не дозволяє звертатися до полів класу ззовні), а для доступу до знаходяться в полях даними використовуються спеціальні методи, звані методами доступу. Такі методи або повертають значення того чи іншого поля, або виробляють запис в це поле нового значення. При записи метод доступу може проконтролювати допустимість записуваного значення і, при необхідності, провести інші маніпуляції з даними об'єкта, щоб вони залишилися коректними (внутрішньо узгодженими). Методи доступу називають ще аксессор (від англ. Access - доступ), а окремо - Геттера (англ. Get - читання) і сетерами (англ. Set - запис).

Властивості об'єкта. Псевдополя, доступні для читання і/або запису. Властивості зовні виглядають як поля і використовуються аналогічно доступним полях (з деякими винятками), однак фактично при зверненні до них відбувається виклик методів доступу. Таким чином, властивості можна розглядати як розумні поля даних, що супроводжують доступ до внутрішніх даних об'єкта якими-небудь додатковими діями (наприклад, коли зміна координати об'єкта супроводжується його перемальовуванням на новому місці). Властивості, по суті - не більше ніж синтаксичний цукор, оскільки ніяких нових можливостей вони не додають, а лише приховують виклик методів доступу. Конкретна мовна реалізація властивостей може бути різною. Наприклад, в C # оголошення властивості безпосередньо містить код методів доступу, який викликається тільки при роботі з властивостями, тобто не вимагає окремих методів доступу, доступних для безпосереднього виклику. У Delphi оголошення властивості містить лише імена методів доступу, які повинні викликатися при зверненні до поля. Самі методи доступу являють собою звичайні методи з деякими додатковими вимогами до сигнатурі.

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

3. Опис всіх розроблених класів


У цій роботі були розроблені наступні класи:

· user - батьківський абстрактний клас користувачів зі спільними для всіх властивостями і методами, а також віртуальним методом виведення інформації про користувача

· guest - похідний клас від user, що має перевизначення метод виведення інформації.

· defUser - похідний клас від user, що має додаткові полe пароль та перевизначених метод виведення інформації.

· admin - Похідний клас від defUser, що має додатковий метод видалення користувача і перевизначення метод виведення інформації.

· listElement - клас елемента контейнера. Має наступні поля: покажчик на об'єкт класу user, покажчик на наступний елемент (на об'єкти класу listElement).

· Container - клас-контейнер на основі лінійного списку,...


Назад | сторінка 5 з 18 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Клас птахи, загальна характеристика класу
  • Реферат на тему: Реалізація різних методів доступу до даних в таблицях на ім'я
  • Реферат на тему: Інтегрований урок читання (1 клас), історії (3 клас)
  • Реферат на тему: Пристрій виведення інформації &Принтер&. Адміністрування і розмежування пр ...
  • Реферат на тему: Методи захисту територій та приміщень від несанкціонованого доступу до конф ...