Программалау оқулық Алматы, 012 Қазақстан Республикасы Білім жəне ғылым министрлігінің «Оқулық»


II БӨЛІМ   Объектіге бағытталған программалау



Pdf көрінісі
бет252/642
Дата30.03.2022
өлшемі3,66 Mb.
#29231
түріПрограмма
1   ...   248   249   250   251   252   253   254   255   ...   642
Байланысты:
pavlovskaia-jogargy-dengeili

II БӨЛІМ  

Объектіге бағытталған программалау

Кез келген программа ең соңғы үлгісінде процессорға арналған нұсқаулар 

жиынтығы болып табылады. Кез келген программалау тіліндегі жазылған ко-

мандалар – осы нұсқаулар жиынтығының əрі ыңғайлы, əрі қарапайым жазба-

сы, ол программаны жазуды, түзетіп жөндеуді жəне уақыт өте келе өзгерістер 

енгізуді жеңілдетеді. Программалау тілінің деңгейі неғұрлым жоғары 

болған сайын, іс-əрекеттердің жазылу формасы соғұрлым қарапайым болып 

келеді. Мысалы, ассемблер тілінде циклді жүзеге асыру үшін регистрлер-

ге айнымалылардың орналасуын қамтамасыз еткеннен кейін ғана нұсқаулар 

тізбегін жазуға болады, ал С немесе Паскаль тілдерінде бұл үшін бір-ақ опе-

раторды жазу жеткілікті.

Программа көлемінің ұлғаюына байланысты компьютер жадында барлық 

мəліметтерді тиянақты түрде сақтау мүмкін болмайды да,  мəліметтерді 

құрылымдау керек болады, яғни негізгі мəліметтерді белгілеп алып, қалған 

маңызды еместерін ескермеу қажеттігі туындайды. Бұл процесс программаның 

абстракциялық деңгейін арттыру деп аталады.

Абстракцияны арттырудың алғашқы қадамы функцияларды қолдану бо-

лып табылады, мұнда функцияны жазып, түзетіп жөндегеннен кейін оның 

жүзеге асырылу ерекшеліктерін ескерудің қажеті жоқ, өйткені функцияны 

шақыру үшін тек оның интерфейсін білу жеткілікті. Егер ауқымды айныма-

лылар қолданылмаса, интерфейс толығымен функцияның тақырыбы арқылы 

анықталады.  

Келесі қадам – ақпаратты құрылымдау жəне топтау арқылы оны табиғи 

түрге барынша жақын етіп бейнелеуді қамтамасыз ететін өзіндік мəліметтер 



типтерін сипаттау болып саналады. Мысалы, бір ғана құрылымның 

көмегімен қоймадағы тауардың бір түріне қатысты əртекті ақпаратты 

толығынан сипаттауға болады. 

Өзіндік мəліметтер типтерімен жұмыс істеу үшін арнайы функциялар қажет. 

Оларды осы мəліметтер типтерінің сипаттамаларымен бірге программаның 

бір жеріне топтастырып, мүмкіндігінше программаның басқа бөліктерінен же-

келеген жөн. Осындай типтер мен функцияларды қолдану үшін олардың қалай 

жазылғанын толық білудің қажеті жоқ, тек қана солардың интерфейстерінің 

сипаттамаларын білу жеткілікті. Олармен жұмыс істеуге арналған мəліметтер 

типтері мен функциялардың сипаттамаларын модульдерге біріктіре отырып, 




188

модуль қолданушысынан онша маңызды емес ұсақ-түйектерді жасыру про-

грамманы құрылымдаудың одан ары дамуы болып табылады.  

Жоғарыда айтылған абстракцияны арттырудың үш тəсілінің де мақсаты 

программа құрылымын жеңілдету, яғни оны көлемдері үлкен болғанмен, жал-

пы саны аз болып келетін блоктар түрінде көрсету жəне олардың арасындағы 

байланыстарды барынша азайту болып табылады.  Бұлар ақпараттың аса 

үлкен көлемдерін басқарып, аса күрделі программаларды жеңіл түзетуге 

мүмкіндік береді.

Класс түсінігін енгізу модульділік идеясының заңды жалғасы болып са-

налады. Класта мəліметтер құрылымдары мен оларды өңдеу функциялары 

біріктіріледі. Класс тек өз интерфейсі арқылы ғана қолданылады, оның орын-

далу ерекшеліктері класты пайдаланушы үшін маңызды емес. Кластар идеясы 

нақты əлем объектілері құрылымын бейнелейді – кез келген заттың немесе 

процестің сипаттамалары немесе ерекше белгілері болады, басқаша айтқанда, 

қасиеттері мен тəртіптері болады емес пе. Программалар, көбінесе нақты 

əлемдегі заттарды, құбылыстарды жəне процестерді модельдеуге арналады

1



сондықтан программалау тілінде модельдерді бейнелеуге арналған құрал 



болғаны жөн.

Класс қолданушы анықтайтьн мəліметтер типі болып табылады. Класта 

қандай да бір заттың немесе процестің қасиеттері мен тəртіптері мəліметтер 

өрістері (құрылымдағы сияқты) жəне солармен жұмыс істеуге арналған функ-

циялар түрінде беріледі. Құрылатын мəліметтер типінің қасиеттері  стан-

дартты типтердің қасиеттерімен бірдей деуге болады. Тип компьютердiң 

жадындағы мəлiметтердiң iшкi бейнесін, осы типтегі шамалар қабылдай ала-

тын мəндер жиынын, сонымен қатар осы шамаларға қолданылатын операция-

лар мен функцияларды анықтайтынын айта кетейік.  Осылардың барлығын 

класс құрамында да беруге болады.

Кластың маңызды қасиетi – оның жұмыс істеу ерекшеліктерінің 

қолданушыдан интерфейс арқылы жасырылуында (мысалы, нақты өмірде 

де автокөлікті оның қозғалтқышының қалай жұмыс істейтінін білместен-

ақ жүргізуге болады, телефонды да «сигнал қалай жүретінін, байланыс 

принциптерін жəне кабельді кім тартқанын білмей-ақ қолдана аламыз»

2

). 


Класс интерфейстері болып оның əдістерінің тақырыптары есептеледі. Соны-

мен, класты нақты əлем объектiсiнiң моделi ретінде сыртқы ортаға қатысты 

тұйықталған қара жəшiк ретінде қарастыруға болады.

Кластар идеясы объектіге бағытталған программалаудың (ОБП) негізі бо-

лып табылады. ОБП негізгі принциптері Simula-67

жəне Smalltalk тілдерінде 



де құрылған болатын, алайда оны түсіну қиыншылықтары мен жүзеге асы-

1

Мысалы, 



Б. Страуструп С++ тілін телефон коммутациялық жүйелерін модельдеу үшін  құрған 

болатын.


2

©БГ


3

Шыққан ж


ылдарына назар аударыңыз: программалауда жаңа ойлар айтарлықтай жиі пайда болмайды.

1



189

рылу тиімділігі төмен болғандықтан, кең қолданыс таппады. C++ тіліне бұл 

концепциялар тиімді, көркем, əрі қайшылықсыз жүзеге асырылды, осының 

арқасында бұл тіл кең таралып, оның көптеген мүмкіндіктері басқа да про-

граммалау тілдеріне енгізіле бастады.

ОБП – бұл тiлге қосылған жай ғана жаңа құралдар жиынтығы емес (С++ 

тілінде ОБП қолданбай-ақ жақсы программалар жазуға жəне керісінше, 

объектілерді сүйемелдеудің арнайы құралдары жоқ тілде де объектілік про-

грамма жазуға болады). ОБП-ны жиі программалаудың жаңа парадигмасы деп 

атайды.


«Парадигма» термині білімді ұйымдастыру тəсілін  құратын теориялар, 

стандарттар жəне əдістер жиынының бірігуін, басқаша айтқанда, əлемге де-

ген жаңа көзқарасты білдіреді. Программалауда бұл термин есептеу моделін 

анықтау үшін, яғни ақпаратты құрылымдауда, есептеулер мен мəліметтерді 

ұйымдастыруда кең қолданылады. Объектіге бағытталған программа 

объектілер мен солардың өзара байланыстарын көрсететін терминдер арқылы 

құрылады.

Абстракция дəрежесін таңдау шешілетін есеп типімен анықталады. 

Қарапайым есептерді шығару үшін күрделі технологияларды қолданбаған 

жөн, ал күрделі мəселелерді қарапайым құралдармен шешуге тырысу 

сəтсіздікке ұшыратады. Басқа жағынан қарасақ, күрделі технологияларды 

меңгеру уақыттың мол жұмсалуын талап етеді.

Мысалы, егер хат мəтінін теру керек болса, онда бұл үшін 10 минутта өз 

əжеңді де үйретуге болатын, мүмкіндіктері аз, қарапайым мəтіндік редак-

тор жетіп жатыр; формулалары бар мақала дайындау үшін одан күрделілек 

Microsoft Word сияқты мəтіндік процессорды меңгеру қажет, ал көрнекі 

суреттері бар жарнамалық құжат дайындау үшін үйренуге бірнеше апта 

жұмсалатын шағын баспа құралдарының бірін игеру керек. Программалауда 

да дəл осылай: ОБП  идеяларын түсініп, оны тəжірибе жүзінде қолдану оңай іс 

емес (оларды дұрыс қолданбаудың пайдасынан гөрі зияны көп болып келеді), 

ал қазіргі қолданылып жүрген стандартты кітапханаларды меңгеру уақытты 

да жəне бастапқы дайындықтың да жоғарғы деңгейін талап етеді.

Мəліметтер типінің «класс» ұғымының нақты шамалары класс даналары 

(экземплярлары) немесе объектілер деп аталады. Объектілер бір-бірімен ха-

барламаларды жіберу жəне қабылдау арқылы өзара əрекеттеседі. Хабарлама – 

бұл керекті параметрлер жиынын қамтитын, белгілі бір іс-əрекетті орындауға 

арналған сұраныс. Хабарламалар механизмі соларға сəйкес функцияларды 

шақыру арқылы жүзеге асырылады. Сонымен, объектіге бағытталған про-

граммалау көмегімен «оқиғалық-басқарылатын модель» жеңіл жүзеге асыры-

лады, мұнда мəліметтер екпінді түрде болады жəне программалық кодтың кез 

келген бір бөлігін шақыруды басқарады

1

 .

1



Оқиғалық-басқарылатын модель ОБП-ның бір бөлігі емес жəне ол объектілерді қолданбай-ақ жүзеге 

асырылуы мүмкін (мысалы, 

API функцияларын қолданып

  

Windows ортасында  С тілінде программалау).



1


190



Достарыңызбен бөлісу:
1   ...   248   249   250   251   252   253   254   255   ...   642




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет