русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Статичні методи


Дата додавання: 2014-04-22; переглядів: 885.


Попередньо описані методи об’єктів TStudent і TStudent1 називаються статичними. Така назва методів зв’язана з тим, що розміщення посилань на них здійснюється ще на етапі компіляції.

Обробка компілятором статичних методів схожа на обробку статичних змінних. Дії компілятора при обробці методів, що складають певну ієрархію, такі:

1. При виклику методу компілятор встановлює тип об’єкту, який викликав цей метод.

2. Встановивши тип, компілятор шукає метод у межах типу об’єкту. Знайшовши його, компілятор призначає виклик цього об’єкта.

3. Якщо вказаний метод не знайдений, то компілятор починає розглядати тип безпосереднього прабатька і шукає метод, ім’я якого викликано в межах цього прабатьківського типу. Якщо метод з таким іменем знайдений, виклик змінюється на виклик методу прабатька.

4. Якщо шуканий метод відсутній в типі найближчого прабатька, то компілятор переходить до типу наступного прабатька («діда») нашого типу, де й здійснюється подальший пошук. Процес продовжується до того часу, доки викликаний метод не буде знайдений, інакше компілятор, дійшовши до найостаннішого типу («родоначальника») і не знайшовши методу, ім’я якого викликається, видасть повідомлення про помилку компіляції номер 44 Field identifer expected (“Очікується ідентифікатор поля”). Це означає, що метод з таким іменем не визначений.

 

Звідси випливає одна важлива особливість. Якщо метод прабатька викликає інші методи, то останні також будуть методами прабатька, навіть якщо потомки мають свої власні методи. Це викликає так звану проблему успадковування, яку вдається розв’язати за рахунок віртуалізації методів.

 


<== попередня лекція | наступна лекція ==>
Підсумок | Проблема успадковування


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн