I тарау. Объектілі бағдарлы программалау объект ұғымы



бет9/25
Дата06.02.2022
өлшемі0,87 Mb.
#79285
түріПрограмма
1   ...   5   6   7   8   9   10   11   12   ...   25
Байланысты:
ОБП
мультимедиа
Статикалық әдiс  - дегеніміз статикалық айнымалыларда программаның немесе процедураның іске қосылып жұмыс істегеннен бастап жадыдан адресі анықталып, программа немесе процедура жұмысын аяқтағанша айнымалы тек сол адресте сақталуды айтамыз. Мысалы: var бөліміне жазылған айнымалыларды статикалық айнымалыларға жатқызамыз.
1.5 Кластар құру
Айналаға қарап, өмірдің көптеген заттарын байқауға болады. Мысалы, ит, үстел, теледидар, автомобиль. Мұнда кейбір геометриялық фигураларды да жатқызуға болады. Мысалы, шеңбер, тіктөртбұрыш және т.б. Қоршаған ортаның объектілерін екі типке бөлуге болады: олардың бәрінің қалпы және мінез – құлқы болады. Мысалы, автомобильдің қалпы бар (түсі, жүру жылдамдығы, типі және дөңгелек көлемі) және мінез – құлқы (тежеуі, жылдамдатуы). Шеңбердің өзіне тән қасиеттері бар. Мысалы, орталық координаттары, радиусы, түсі. Және де өзіне тән мінез – құлқы (салу, орын алмастыру, түсін өзгерту).

1.1. сурет. Жалпы белгіленген объектінің программалық бейнесі.
программалық объектілер, қоршаған орта объектілеріне тән өзіндік қасиеттері де бар. программалық объектілер өзінің қалпын өзінің қасиетінде сақтайды. Қасиеті – идентификаторы бар, белгілі бір мән. программалық объектілердің мінез – құлқын әдіс арқылы іске асырады. Әдіс – бұл объектімен байланысқан астыртын программа (процедура). Сонымен, объект дегеніміз – бұл құрамында әдіс пен қасиеті бар программалық бірлік (1.1 сурет).
ООП-да класс үшін мұрагерлік, инкапсуляция және полиморфизм принциптері енгізілгек.
Жоғарыда айтылып өткен мәселе жайында мысалы келтірейік:
Мысалы ретінде кез келген программа құру қажет дейік, ол программа шеңберді салып оны кез келген түске бояуы тиіс делік. Бұл үшін оған радиус, орталық координат және де ол шеңбер боялатын түс қажет. Егер стандартты түрде даярлайтын болсақ, онда бізге келесі мәндер керек болады:
R – шеңбер радиусы;
X, Y – шеңбер орталығының координаттары;
Color – шеңбер түсі.
Бұл шеңберді салу үшін бізге процедура қажет, демек оны Draw деп атайық. Ол R, X, Y, Color координаталы шеңберді бейнелеп тұрады.
Стандартты даярлаудың кемшілігі бұл параметрлердің бір – бірімен байланыссыз болуы. Мысалы, бір емес үш шеңбер салу керек (мысалы аққала). Стандартты программалау жағдайында бізге екі амалдың бірін таңдау қажет болады. Біріншісі - шеңбер үшін R, X, Y, Color, онан соң осы шеңбердің әрқайсысы үшін Draw командасын шақыру қажет. Бұл тәсілдің кемшілігі егер көп шеңбер салу керек болса, онда бізге көптеген ауыспалы мәндер қажет болады. Бұл программаның үлкен размерділі болуына әкеліп соғады. Екінші тәсіл - әрбір шеңбер үшін R, X, У, Color, бірақ екінші шеңбер салу барысында, алғашқы шеңбердің мәні жоғала береді. Бұл тәсілдің кемшілігі соңғы шеңберден басқа барлық шеңберлердің мәнін жоғалтып аламыз.
Егер бұл суретте тек аққала салумен шектеле қойсақ, онда кемшілігі көрінбей қалады. Көлемі жағынан үлкен программа құратын болсақ, онда бізге программаға елеулі өзгерістер енгізу қажет болады. Аққаламен қарастырылған мысалда бірнеше өзгеріс болады.
Аққаланың экран бетінде жүруі үшін Move процедурасы қолданылады. Аққаланы баратын жеріне жеткізу үшін программистке аққаланың баратын жерінің координаттары қажет емес (анығырақ айтсақ, әрбір баратын нүктесінің координаталарын). Сондықтан Move процедурасының параметрлері барлық мәні емес, тек жанама мәндерін ғана білуі тиіс. Демек, аққала өзінің бастапқы нүктесінен бастап жүруі тиіс.
Аққаланың барлық түстерін өзгерту үшін ChangeColor процедурасы қолданылады. Ол процедура орындалу үшін екі параметр қажет. Өзгертілетін объектінің атымен өзгертілетін түсі. Егер екінші тәсілді пайдаланатын болсақ (ауыспалы мәні аз), онда біздің процедура аса қиынға түседі. Мұның себебі, аққала құрылатын шеңберлердің (соңғысынан басқа) мәндерінің болмауы. Себебі, Draw процедурасы шақырылған сайын ол мәндерді білуі тиіс. Демек, аққала салынған жағдайда ауыспалы R, X, Y, Color мәні тек соңғы объект үшін ғана берілген болады. Ал, қалғандарының мәні жоғалған болып табылады. Сондықтан шеңберлердің бәрінің орнын ауыстыру үшін, екінші тәсіл қолайсыз болып табылады.
Бірінші тәсілді қолдану барысында, өте үлкен тәсілді, барлық өзгертулерді енгізуге болады. Бірақ жаңадан енгізілген мәндер үшін бір процедураны үш реттен шақыруға тура келеді. Егер тағы да бірнеше аққала салатын болсақ, онда біздің программамыздың оқылуы өте баяу болғандығынан басқа, стандартты жолмен жазу өте қиын, әрі оқылмай қалу мүмкінділігі басым болады. Енді аталған мәселе объектті – ориентирлік программалау жағынан қарастырайық. Мұнда бірнеше ауыспалылардың орнына, бірнеше объекті пайда болады. Басында барлық шеңберлерді бірдей элементтер, бірақ әртүрлі құрылымнан тұрады деп есептейміз. Олар бір – бірінен тек параметрлерімен ерекшеленеді деп алайық. Draw, Move и ChangeColor процедураларының орындалуы бәрі үшін жалпы бірдей болады. Демек, әрбір шеңбер өзге шеңберге ұқсас тек өзінің параметрлерімен (радиусымен, орталық координатасымен, түсімен) ерекшеленетін, бірақ бірдей іс – қимыл әрекетін жасайтын деп есептеледі. Ары қарай қарастырылып отырған мәселе ОБП терминдерін қолдану арқылы жазылады.
Әрбір элемент өз бетінше объект ретінде қарастырылып ортақ бір процедураны орындайды. Ол әрбір элемент (экземпляр) белгілі бір классқа жатады. Объектінің параметрі (радиусы, түсі және т.б.) оның қасиеті деп аталады. Ал оның жасайтын іс - әрекеті (түсін өзгертуі, орын алмастыруы) әдіс деп аталады. Әдіс әрбір сұранысқа жауап беретін болса, онда оның класы анықталады, объектінің экземплярын анықтайды. Және керісінше.
Енді аталған мәселелерді мысалда қолданып көрейік. Барлық шеңберлер Round класына жатады деп алайық (5.2. сурет).
Round класының қасиеттері болып, төмендегілер есептеледі:
■ R – шеңбер радиусы;
■ X, Y – шеңбердің орталық координатасы;
■ Color – шеңбер түсі. Round класының әдістері:
Draw – берілген параметрлер бойынша шеңбер салады;
Move – таңдалған бағытта шеңберлердің бәрін біркелкі қозғалтады;
ChangeColor – шеңбердің түсін өзгертеді.

1.2 сурет. Round класындағы бейнелер.
Аққаланы салу үшін, үш шеңбер қажет. Оның үстіңгісін Head, ортаңғысын Body, ал астынғысын Foot деп атауға болады. Демек, олардың барлығы бірдей қасиетке ие болады (R, X, Y, Color) және бірдей әдістерді шақырады (Draw, Move, ChangeColor).
ООП тәсілінде, қарапайым тәсілде қанша сақтау құрылғысы қолданылса, сонша сақтау құрылғысы қолданылады. Бірақ мұнда кішкене болса да есептеуге ыңғайлы болады. Тәуелсіз блоктардан құралып, құру және қазіргі заман талабына сай болады. Программаны қолдану тәсілінің оңай болу себебі, ол әртүрлі блоктан құралып, басқа программаларда қолдануға мүмкіншілік береді. Бірнеше жаңа блоктарға қосуға мүмкіншілік береді.


Достарыңызбен бөлісу:
1   ...   5   6   7   8   9   10   11   12   ...   25




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

    Басты бет