Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






МҰРАГЕРЛЕУ






Айталық, нү кте объектісінен басқ а шең бер объектісі қ атысатын программа қ ұ райық. Ә рине бұ л жаң а типтің сипатталуын Dot типі сияқ ты басынан бастауғ а болады. Дегенмен, бұ л жаң а шең бер – типтің Dot типімен ортақ ө рістері жә не ә дістері бар. Яғ ни, шең бер де нү кте сияқ ты оның центрін анық тайтын a, b координатасымен сипатталады. Дегенмен, қ ұ рылатын нысанғ а шең бердің радиусын беретін ө ріс қ осу керек. Ал ә дістерге келетін болсақ, жаң а Ring типіне Move ә дісі қ олданылады, нү ктенің орнын ауыстыруы мен экранда шең бердің ауысуы бірдей жү зеге асады. Ал Init, Show жә не Hide ә дістерін жаң адан жасауғ а тура келеді. Сонымен, жаң а Ring типі Dot типінің кейбір ә дістерін қ айталайды. Ендеше бар типтің негізінде оғ ан жаң а ө рістер мен ә дістерді қ оса отырып, жаң а тип жасауғ а бола ма? Бұ л мұ рагерлеу деп аталатын объектілік типтердің қ асиеттерінің арқ асында жү зеге асады. Мә селе мұ рагерлеу туралы болғ андық тан генеологиялық терминологияғ а сә йкес жаң а нысанды жасауғ а негіз болатын бар типті ата-бабасы немесе ата-аналық тип деп атайды. Ал қ ұ рылатын объектіні ұ рпағ ы деп атайды. Ұ рпақ автоматты тү рде ө зінің ата-бабасының барлық ө рістері мен ә дістерін мұ рағ а алады. Мұ рагерлеу қ асиеті НБП-да қ олданылады. Оның арқ асында бар нысанның негізінде кө птеген жаң а нысандар қ ұ руғ а болады. Осы нысандарғ а негіздей отырып, нысандарды кө птеп кұ ра беруге болады жә не де ә рбір нысанның кө п ұ рпағ ы болуы мү мкін, бірақ оның ата-бабасы біреу ғ ана болады. Ал енді Dot жә не Ring типтеріне оралайық. Ұ рпақ типінің сипаттауында ата-аналық типтің атауы кө рсетілуі керек.

Type

Ring=object(Dot);

Rad=integer;

End;

Ring типінің сипатталуында шең бердің радиусын анық тайтын Rad ө рісі бар. Бұ л ө ріс dot типінде болмағ ан жә не де Ring типі ө зінің ата-бабасының ө рістерін мұ рағ а алады (нү кте координаталары a, b). Егер Ring типінің сипаттамасын сә йкес ә дістермен толық тырсақ, тө мендегідей болады:

Ring=object(Dot);

Rad: integer;

Procedure Init(x, y, r: integer);

Procedure Show;

Procedure Hide;

End;

{------------------------}

Procedure Ring.Init;

Begin

a: =x; b: =y; Rad: =r;

end;

{------------------------}

Procedure Ring.Show;

Begin

SetColor (white);

Circle (a, b, Rad);

End;

{------------------------}

Procedure Ring.Hide;

Begin

SetColor (black);

Circle(a, b, Rad);

End;

Осы жерден ұ рпақ -нысанның ә дістері ата-ана объектісінің бірдей атаулы ә дістермен алмастырылатынын кө руге болады. Басқ а сө збен айтқ анда, егер Ring.Move ә дісіне қ атынас жасалса, жү йе алдымен Ring объектісінің сипаттамасында осындай атаудың бар-жоқ тығ ын анық тайды. Егер бар болса, осы жаң а ә діс қ олданылады. Егер жоқ болса, ата-бабасынан мұ рағ а алғ ан ә дісті қ олданылады.

Ескерту! Тек ә дістерді ғ ана қ айта анық тауғ а болады. Ал ұ рпақ -нысанындағ ы ө ріс атаулары ата-анасының нысанындағ ы ө ріс атауларымен сә йкес келмеуі тиіс.

Ұ рпақ объектісі жарияланғ аннан кейін оның ө рістерімен жұ мыс істеу ү шін оның экземплярын жасауғ а болады.

Var Ring1: Ring.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.