- •Дәрістік сабақтардың конспектісі
- •1 Дәріс. Кіріспе. Курстың мақсаты. Пәнді игеру негіздері, басқа пәндермен байланысы. Программалық жабдықтаудың даму тарихы Процедуралық бағдарламалаудан объектілі-бағытталған бағдарламалауға өту
- •Мұрагерлену
- •Полиморфизм және виртуалды әдістер
- •2 Дәріс. Объектілі бағдарланған визуальді программалаудың принциптері
- •2.1 Сурет – Интеграцияланған өңдеу ортасының түрі
- •2.2 Сурет – Жөндеудің диалогтық терезесі
- •2.3 Сурет – Компоненттер тақтасы қасиеттерінің сұхбаттық терезесі
- •3 Дәріс. Delphi программасының интегралданған өңдеу ортасы
- •2.4 Сурет – Компоненттің қасиеттеріне қатынау
- •Қосымшаның жұмыс істеу қабілетін анықтау
- •2.5 Сурет – Компонентке тиісті оқиғалар тізімі
- •4 Дәріс. Delphi программасындағы жобалар Object Pascal тілі
- •Негізгі түсініктер
- •Алфавит
- •Бағдарламаның құрылымы
- •Түсініктемелер
- •Мәліметтердің типтері
- •Операторлар
- •Компилятор директивалары
- •Дәрiс 5. Қосымша программалардағы қателерді жөндеу
- •Бүтiнсанды типтер
- •Литерлiк тип
- •Логикалық типтер
- •Мәлiметтердің нақты типтерi
- •Бақылау сұрақтары
- •Дәрiс 6. Delphi тіліндегі мәліметтердің типтері
- •Саналымды типтер
- •Интервалды типтер
- •Бақылау сұрақтары
- •Дәріс 7. Компоненттер палитрасындағы парақтар. Мәтіндік ақпараттарды енгізуге және бейнелеуге арналған компоненттер Деректердің құрылымдық типтері. Массивтер. Жиын.
- •Массивтер
- •Жиындар
- •Дәріс 8. Ақпараттардың басқа түрлерін бейнелеуге арналған компоненттер Деректердің структуралық типі. Жазбалар. Файлдар. Жазбалар.
- •Файлдар
- •9 Дәріс. Тақталар және сыртқы әрлеуге арналған компоненттер. Жүйелік диалогтар
- •10 Дәріс. Қолданушының графиктік интерфейсін жобалау Қарапайым операторлар.
- •11 Дәріс. Графика және мультимедиа
- •15. Дәріс Әртүрлі ақпараттық жүйелер класына арналған Delphi мүмкіндіктері.
Мұрагерлену
ОББ оқи бастаған бағдарламалаушыларды ең бастысы объекттер басқа объекттердің қасиеттері мен функционалдық мүмкіндіктерін мұрагерлікке иеленіп, ата-ана-ұрпақ қатынасын және объекттік иерархияларды тудыратыны таң қалдырады. Бұл бағдарламалық код бірнеше функционалдық жіктерге бөліне алатынын білдіреді. Функционалдық мүмкіндіктер (кез келген бір жіктің) бағдарламалық кодтың ортақ фрагментіне негізделетін, әртүрлі қасиеттері бар класстарға енгізілуі мүмкін. Жікке бөліну және кодты бірлесіп пайдалану мүмкіндігі, объекттер бірінен бірі шекті өсетін класстардың иерархиясын жобалауға мүмкіндік тудырады. Бұл қазіргі таңдағы тұрған іске өте ұқсас.
Алдыңғы класстың негізінде жаңа классты құру үрдісі мұрагерлену деп аталады. Мұрагерлену туынды классқа (немесе класс-ұрпақ) алғы ата-класының (немесе ата-тұяғының) барлық функционалдық мүмкіндіктерін иелендіреді. Бұған қоса, туынды класс өзіндік есептерді шығару үшін алғы ата-класының мүмкіндіктерін кеңейтеді.
Ескерту. СИ тліндегі класстардың атауы көп жағдайда С әрпінен, ал Object Pascal тілінде Т әрпінен басталады.
Мысал үшін сізде әртүрлі жылжымалы құралдардың сипаттамалары мен мүмкіндіктерін анықтайтын CVehicle деп аталатын өзіндік класс бар болсын деп жориық. Бұл өзіндік класстың негізінде сіз әртүрлі объекттерді – жылжымалы құралдарды құра аласыз. Мысалы, тікелей CVehicle класынан сіз CLandVehicle, CWaterVehicle, CAirVehicle и CSpaceVehicle класстарын ала аласыз. Әрбір туынды класс CVehicle-дың барлық мүмкіндіктерін мұрагерлікке иеленеді, сонымен қатар қосымша мәліметтерді – жылжымалы құралдың әрбір типіне класс анықтамасын айқындайтын мүшелері мен әдістерін де қамтиды. Ары қарай класс анықтамалары осы туындаған бірінші деңгейлі класстардан жаңа класстарды тудыру арқылы одан ары айқындалуы мүмкін. CLandVehicle-дан CTruck, CCar, CMotocycle тудыруға болады. CWaterVehicle класының негізінде сіз CJetSki, CBoat и CSubmarine класстарын құра аласыз. CAirVehicle класы CJet, CHelicopter и CGlider класстарын тудыруы мүмкін. CSpaceVehicle класы CStarShip, CShuttlecraft класстарын тудырады. Бұл класстардың барлығы CVehicle өзіндік класынан туындап, класстардың қарапайым иерархиясын құрайды.
Иерархияның әр деңгейінде класстар тығыз орналасқан сайын, жаңадан пайда болған класстарда код көбірек қайталануы мүмкін. Оның қулығы объекттік иерархияның кез келген деңгейінде өзіндік класстардың атрибуттары мен операцияларын барлық объекттерге ортақ етуде және өзіндік класстардан арнаулы класстарды алуда. Мұрагерлену сіз мүмкіндігіңізше қолдануға тиіс тағы да бір қызық эффект береді: толық жөнделген кішігірім өзіндік класстар берікті. Сіз күрделі класстарды құру барысында туынды класстарға енгізілген код бөлігіне ғана назар аударуыңыз қажет. Жаңа классты құрудың әр итерациясында толық жөнделген класс-ұрпақ кодына енгізілетін (яғни бірге қосылатын) кодтың кішігірім саны мұрагерленуі мүмкін. Туынды класстардағы кез келген «қоңыздардың» пайда болуын осы класстың жаңадан туындаған кодынан байқауға болады. Егер класстарды кішігірім, өзіндік мақсаттарға толық жету жолына бейімдеу арқылы жобаласа, онда класстар иерархиясының кез келген деңгейіндегі жөндеу үрдісі біраз ықшамдалады.
