Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AEP_LEKTsII.doc
Скачиваний:
90
Добавлен:
28.03.2015
Размер:
1.27 Mб
Скачать

15 Лекция

15.1 Объектке-бағдарлы программалау (обп) негіздері

Негізгі қағидалар. ОБП программалаудың басты технологиялардың бірі болып табылады да жақсы құрылымдалған, сенімді және оңай модификацияланатын программаларды құруға мүмкіндік береді. Бұл тәсілдің артықшылықтарын объектке-бағытталған программалау тілдерінде пайдаланған оңай. Қазіргі программалау тілдерінің көбісі ОБП-ні сүйемелдейді, олардың қатарына C++, Java, Delphi жатады. ОБП-ні Турбо Паскаль да сүйемелдейді.

ОБП-ні пайдалану арқылы программаларды жетілдіру жобаланатын жүйенің объектілі моделін жетілдіруден басталады, ол үшін проблеманы объекттерге жіктеу (декомпозициядау) және олардың арасындағы тәуелділіктерді анықтау орындалады.

Объекттің сипаттамасы оның атрибуттар жиынтығы болып табылады. Тұрақты және айнымалы атрибуттарды ажыратады. Тұрақты атрибуттар объектті оның классы ішінде сипаттайды (мысалы, көп бұрыштың төбелер саны). Айнымалы атрибуттардың ағымдағы мәндері объекттің қалып-күйін сипаттайды – бұл атрибуттарды өзгерту арқылы біз объекттің қалып-күйлерін өзгертеміз (мысалы, көп бұрыштың төбелеріндегі бұрыштардың мәндерін). Кейде атрибуттардың типі және сонымен қатар, айнымалы атрибуттардың бастапқы мәні көрсетіледі. Бұл атрибуттардың бастапқы мәндер жиынтығы объекттің бастапқы қалып-күйін береді.

Үшбұрыштарға байланысты мысалда атрибуттар ретінде қабырғалардың ұзындықтары болуы мүмкін. Объекттерді классқа біріктіруге мүмкіндік беретін белгілер атрибуттуардан бұрын есептің мағынасы жағынан тиянақты бөлігі арқылы анықталады. Мысалы, тік бұрыштар және тікбұрышты үшбұрыштар атрибуттардың бірдей жиынтығы – екі межелес қабырғаларының ұзындықтары арқылы сипатталуы мүмкін. Бұл кезде олар түрлі геометриялық қасиеттерге ие болатын түрлі математикалық объекттер болып табылады.

Объекттерді класстарға біріктіру мәселені жалпылау қойылымында қарастыруға мүмкіндік береді. Класс атауға ие, ол атау осы класстың барлық объекттеріне қатысты. Сонымен қатар, класста объекттер үшін анықталған атрибуттардың атаулары ендіріледі. Класс сипатталуы «жазба» типті сипаттауға ұқсас екіндігі көрініп тұр, бұл кезде әр объекттің мағынасы сәйкес типті айнымалы немесе тұрақтының мағынасымен бірдей.

ОБП-дың келесі негізгі ұғымы - операция. Операция деп оны берілген класстың объектілеріне қолдануға болатын функцияны атайды (мысалы, үшбұрыштарды геометриялы түрде түрлендіру). Бірлей бір операцияны түрлі класстардың объектілеріне қолдануға болады – ондай операция полиморфты деп аталады. Мысалы, «вектор» және «кешенді сан» класстарының объектілері үшін «көбейту» операциясын анықтауға болады. Бұл полиморфты операцияның мысалы, себебі векторларды (скалярлы) өбейту және кешенді сандарды көбейту - әртүрлі математикалық операциялар болып табылады.

Әдіс деп берілген класстың объектілері үшін операциялардың жүзеге асырылуын атайды. Сонымен, операция – ол әдістің спецификациясы (сипатталуы), ал әдіс – операцияның жүзеге асырылуы. Логикалық тұрғыда әдістер бірдей бір операцияны орындай алады, бырақ, жүзеге кодтың әртүрлі фрагменттері арқылы асырылады. Кез келген операция өзі соған қолданылатын бір айқын емес аргумент – объектке ие, бырақ ол басқа да аргументтерге оны параметрлейтін параметрлерге ие болуы мүмкін. Әдіс тек класспен және объектпен ғана байланысқа, Объекттің кейбір атрибуттарының мәндеріне тек сол объекттің операциялары ғана қол жеткізе алады. Ондай атрибуттар жабық деп аталады. Ұқсама түрде объектте жабық (қосымша) рперацияларды да анықтауға болады.

Сонымен, классты беру үшін сол класстың аталуын көрсетіп, одан кейін оның атрибуттары мен операцияларын (немесе әдістерін) көрсету керек.

Жалпылау және мұрагерлік объекттердің түрлі класстары арасындағы ұқсастықтарды айқындауға және объекттердің көпдеңгейлі классификациясын анықтауға мүмкіндік береді. Мысал ретінде тағы да геометриялық фигуралар жиынтығын келтіруге болады. Жалпылау «бірөлшемді фигуралар» класын айқындап, «түзу» және «доға» класстарды «бірөлшемді фигуралар» класының ішкі класстары деп, ал «бірөлшемді фигуралар» класын - «түзу» және «доға» класстардың суперкласы деп санауға мүмкіндік береді. Егер бұл жағдайда суперкласстың атрибуттары мен операциялары оның әр ішкі класстарында жарамды деп келісім қабылдасақ (атрибуттар мен операцияларды ішкі класстар мұраланды деп айтады), онда «түзу» және «доға» класстардың бірдей атрибуттары мен операцияларын «бірөлшемді фигуралар» (суперкласс) класына шығаркға болады. Әр суперкласстың атрибуттары мен операцияларын оның барлық деңгейлеріндегі ішкі класстар мұра етіп алады, бұл класстарды сипаттау үрдісін едәуір жеңілдетеді және қысқартады.

Кейде оның суперкласстарының біреуінде анықталған операцияны ішкі класста қайта анықтау қажет болады. Ол үшін мұрагерлену нәтижесінде суперкласстан алынуы мүмкін болатын операция ішкі класста да анықталады. Ішкі класста мұрагерленген емес оның ішінде қайта анықталған операция пайдаланылады. Қайта анықтауды егер жаңа операция мұрагерленген операцияны кеңейтетін болса пайдалануға болады.

Сонымен, ОБП ақпаратты жасыру және деректер абстрактілі типтері тұжырымдамаларға негізделген. Мұндай тәсіл деректер, модульдер және жүйелер сияқты барлық ресурстарды объекттер ретінде қарастырады. Әр объект сол деректерге амалдарды қолдануға арналған процедуралар (әдістер) жиынтығымен қапталған деректердің кейбір құрылымын (немесе деректер типін) қамтиды. Осы методологияны пайдалана отырып, программалаушы өзінің жеке абстрактілі типін құрып, проблемалық облысты өзі құрған осы абстракцияларға бейнелей алады. Бұл бағытта программалаушы жүйеде пайдаланылатын ақпараттық объекттердің бөлшектері туралы ойланбай жүйенің жобасына көңіл бөледі. Осы методологияда көзделген программаны жетілдірудің негізгі қадамдары:

  • проблеманы анықтау;

  • болашақ программаға қойылатын талаптарды қанағаттандыратын қадамдардың жалпы тізбектілігі болып табылатын формальсыз стратегияны жетілдіру;

  • стратегияны формализациялау;

  • объекттер мен олардың атрибуттарын идентификаттау;

  • операцияларды идентификаттау;

  • интерфейстерді орнату;

  • операцияларды жүзеге асыру.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]