Деректерді қайта құру және полиморфизм. Полиморфизмді қолдану

Автор: f************@rambler.ru, 27 Ноября 2011 в 18:17, реферат

Описание работы

Объекті-бағытталған программалау тілдерінің негізгі концепциясы– құрылатын қосымша өзара байланысқан негізгі объектілерден тұрады. Объекті-бағытталған технологияда қолданушы үш базалық элементпен: объектілер, хабар және класстармен жұмыс істейді.
Көп жылдық зерттеулердің нәтижесінде объектіге бағытталған деп аталатын тәсіл зерттеліп дайындалған және сынақтан өткен(1967 жылы – Simula67 тілі,ал 1983 жылы – С++ тілі).ОБТ-ның программалық жүйелерінде құрудың бұрынғы әдістерінен негізгі артықшылығы – деректердің және олармен бірге істейтіе кодтардың тығыз байланыста болуы.
Объектіге бағытталған тәсіл келесі күрделі проблемаларды жеңіл шешуге көмектеседі:

Содержание

Мазмұны
1.Кіріспе
2.Объектіге бағытталған программалау(ОБП).
2.1. Объектіге бағытталған ойлау.
2.2 .ОБП-ның сипаттамасы.

3.Деректерді қайта құру және полиморфизм. Операциялардың
шамадан тыс жүктелуі.
3.1.Полиморфизм.Класпен анықталған түрлендіру.
3.2.Функциональды тілдердегі полиморфизм.
4.Қорытынды.
5.Қолданылған әдебиеттер тізімі.

Работа содержит 1 файл

Полиморф Бибигуль.docx

— 25.13 Кб (Скачать)

Қазақстан Республикасының Білім және Ғылым  Министрлігі

Әл-Фараби атындағы Қазақ Ұлттық Университеті 
 
 

География және табиғатты пайдалану факультеті 

                          Геоинформатика және картография кафедрасы 
 
 

           СӨЖ

                Деректерді қайта құру және      

     полиморфизм. Полиморфизмді қолдану    

                                              Орындаған: Анетова Б. ГК-101

                                                                               Тексерген: Елеуов А.А. 

     

                                                                                                                                                                                                                 

                                             Алматы 2011

                            Мазмұны

1.Кіріспе

2.Объектіге бағытталған программалау(ОБП).

            2.1. Объектіге бағытталған ойлау.

            2.2 .ОБП-ның сипаттамасы. 

3.Деректерді қайта құру және полиморфизм. Операциялардың  

    шамадан тыс жүктелуі.

           3.1.Полиморфизм.Класпен анықталған түрлендіру.

           3.2.Функциональды тілдердегі полиморфизм. 

4.Қорытынды. 

5.Қолданылған әдебиеттер тізімі. 
 
 
 
 
 
 
 
 
 
 
 
 

                                          1. Кіріспе

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

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

       Объектіге бағытталған тәсіл келесі күрделі проблемаларды жеңіл шешуге көмектеседі: 

  • Программалық  жабдықтаудың күрделілігін азайту;
 
  • Программалық  жабдықтаудың сенімділігін арттыру;
 
  • Программалық  жабдықтаудың жеке компоненттерін қайтадан пайдалануға мүмкіншілікті қамтамасыз ету.
 

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

                       2.1.Объектіге бағытталған ойлау

      Объектіге бағытталған программалау 90-шы жылдардағы программалаудың негізгі әдістанымы. Ол 25 жылдық тәжірибенің өнімі болып табылады және оған бірнеше тілдер кіреді:Simula 67,Smalltalk,Lisp,Clu,Actor,Eiffel,Objective C,C++,Java.

    Бұл программалаудың стилі,ол  нақты заттарды белгілі бір  әдіспен белгілегенде,оның жүзеге  асыру әдістері жасырын жағдайда  болады.

    ОБП-бұл бар тілдерге қосылған  кейбір қасиеттердің жай жиынтығы  емес.Бұл есептерді ойлауды және  программалаумен қамтамасыз етуді  дайындаудың жаңа қадамы.Басқа парадигмдер: директивтік,логикалық – Пролог,функционалды-Lisp. Effel.

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

    Кластар қасиеттерінің мұралауы  иерархиялық құрылымдарға ұйымдастырылуы  мүмкін.Туынды класс иерархия  ағаштың жоғары жағында орналасқан  аталымдық кластың атрибуттарын  мұралауды жасайды.

   Сөйтіп,аталымдық кластан мұралау  ақпаратты қайта анықтауға рұқсат  береді.Хабарды өңдеуде қолайлы  әдісті іздеу үшін келесі ережені  қолданады.

   Белгілі хабарға жауап беруге  шақыратын әдіс іздеп табу  класына жататын әдістерден басталады.Егер  қолайлы әдіс табылмаса,онда аталымдық  класс үшін іздеу әрі қарай  жалғастырады.Іздену қажетті әдіс  табылғанға дейінгі немесе аталымдық  кластардың реті таусылғанға  дейінгі уақытқа дейін аталымдық  кластардың тізбегі бойынша жоғары  жылжиды.Бірінші жағдайда табылған  әдіс орындалады ал екіншіде  қате туралы хабар беріледі.Егер  кластар иерархиясынан жоғары  да кезектегі әдістің атымен  аталған әдістер болса,онда берілген  әдіс мұралатын бағытты қайта  анықтайды деп атайды.Сіздің студент  досыңыз және поштаның операторы  туысқандарыңызға жіберген құттықтау  өтінішіңізге әр түрлі сезінетін  жағдайдағы факт полиморфизм  белгісіне жатады. 
 

                                         2.2.ОБП сипаттамасы.

    1. Барлығы объект болып табылады.Әр объект нақты міндетке жауапты      

болады.

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

    3.  Әр объектінің тәуелсіз жадысы болады, ол басқа объектілерден тұрады.

   4. Әр объект объектілердің жалпы қасиеттерін білдіретін кластардың өкілдері болып табылады.

   5. Класта объектілердің бет-алысы беріледі. Осылайша бір кластың экземплярлары болып табылатын барлық объектілер бірдей әрекеттерді орындауы мүмкін,яғни бірдей сұраныстарға бірдей жауап береді.

   6. Объект өзінің бет-алысын ідңс шақырған хабарға жауап беру арқылы білдіреді.

   7. Кластар жалпы тамыры бар тұтас ағаш тәрізді құрылыммен ұйымдастырылған.Жады және бет-алысы белгілі кластың экземплярларымен байланысты,иерархиялық ағаштың төменінде орналасқан кез-келген класқа автоматты түрде ашық.

         Сөйтіп,объектіге бағытталған тіл,абстракция,инкапсуляция,мұралау  және полиморфизм қасиеттеріне  ие болу керек.

  1. Деректерді жасыратын икапсуляция – объектінің ішкі күйін және ретін,оның сыртқы күйі мен ретінен ажырата білу қабілеттілігі.
  2. Абстракция- титердің кеңейтілуі – пайдаланушымен анықталатын типтер тізбегінде типтерді толықтырып отыратын типтердің қосу қабілеті. ОБП принципінің бірі – пайдаланушымен анықталатын типтер,құрылған типтер сияқты артықшылыққа ие болу керек деп тұжырымдайды.
  3. Мұралау – бар типтердің сипаттамасын қайта пайдаланып жаңа типтерді құру қабілет.
  4. Динамикалық байланысты – Полиморфизм – бұл функцияның шақыру интерпритациясы үшін объектілердің жауапкершілікте болу қабілеті.
 
 

              3.1.Полиморфизм. Класпен анықталған түрлендіру.

      Полиморфизм – бұл өңделетін  деректердің типіне байланысты  сол бір хабарлауға әр түрлі  шамаларды беру үшін арналған  құрал. Түрлендіру – бұл типке  байланысты шаманың айқын немесе  айқын емес өзгеруі. Түрлендіру  полиморфизм типін қамтамасыз  етеді. Функцияның шамадан тыс  жүктелуі сол бір функцияның  атына әр түрлі шамаларды береді.Сол  бір атта әр түрлі интерпретация  болады, олар функцияны таңдауға  байланысты болады. Таңдалған функция   С++ үшін сигнатуралардың алгоритмнің  сәйкестілігін қанағаттандырады. Полиморфизмнің  бұндай түрін арнайы полиморфизм деп атайды.

     Операторлар сигнатуралардың алгоритмнің  сәйкестігі негізінде жүктелінеді  және таңдалынады. Операторлардың  жүктелуі оларға жаңа шамаларды  береді. Мысалы, а+b өрнегі а   және  b айнымалылардың типіне байланысты  әр түрлі шамаларда болады. Түрлендіру  функциясын анықтағанда араласқан  типтің өрнектері де кіре алады.

     ОБП-ның бірінші принципі пайдаланушының  анықталған типтері қатар құрылған  типтер сияқты жеңілдікке ие  болуынан тұрады. Базалық тілде  қатар құрылған типтер өрнектермен  араласады,сондықтан бұл ыңғайлы,бірақ  екінші жағынан бұнда қажетті  түрлендірудің ретін анықтау  ауыртпалық тартады.Типтерді түрлендіру операциясы осы кластың объектілерін басқа типке айқын түрлендіру айқын емес түрлендіру керексіз болған кезде немесе онсыз өрнек болымсыз болғанда қолданады. С++ есептерінің бірі бұл деректердің абстракты типінің және қатар құрылған типтердің интеграциясы. Осыған жету үшін айқын түрлендіру қамтамасыз ететін функция мүшенің механизмі болады. Функционалды сызба келтіруге эквиваленті:

    Типтің аты(өрнек)

Тип идентификатор  өрнектелуі сияқты. Мына екі өрнек

    Х= (Float)i; 

    Х= Float(i);

эквивалентті.

    P=(Int*)x;// шекті келтіру өрнегі.тікелей  функционалды.

    P=(Int*)x;

өрнектеле алмайды.

   Ол үшін typedef қолданылады.

Typedef int * int_ptr;

Р=int_ptr(x); 

   Бір аргументті бар конструктор,шындығында,аргумент типін конструкциялау класының типіне түрлендіру болып табылады.

String(const char  *p)   {

len=strlen(p);   s= new char [len+1] ; strcpy (s,p) ;  }

  Көрсетілген өрнектеу формула – char * string-ке типтерін автоматты түрлендіру. Ол айқын түрде және айқын емес түрде қолданылады. Айқын турлендіру операция ретінде келтіру немесе функционалды операциясы қолданылады.Осылай,кодтың екі варианты болуы мүмкін.

String  s;

char * logo=″Hello″;

s=string(logo) ; // түрлендіруді орындайды,одан кейін // беруі және

s= logo ; // түрлендіруінің айқын емес шақыру

  Осы  кодты пайдалану анықталған типтен  анықталатын типке түрлендіру  болып табылады. Бірақ, пайдаланушы  int сияқты қатар құрылған типтердің  конструкторларын қоса алмайды.

  Конструкторды  және шамадан тыс жүктелу операциясын  жүргізуді бір уақытта қолдану  емес. Өйткені, түрлендіру операциясында  айқын аргументтер мен қайтарылатын  шама болмаса, онда олар шамадан  тыс жүктелулі болмайды. Әр түрлі  типтер үшін бірнеше түрлендіру  операциясы болады. Түрлендіру операциялары  мұралы және виртуалды болуы  мүмкін. 

                  3.2.  Функционалды тілдердегі полиморфизм

   Функциональды тілдерде полиморфизм Haskell мысал тілінде қарастырылатын болады.

   Haskell тілінде полиморфизмнің екі түрі  бар-параметрлік(таза) және әдейі,(класстар  негізінде).

     Әдейіні ad hoc (лат.ad hoc-әдейі) деп  те атайды.

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

Информация о работе Деректерді қайта құру және полиморфизм. Полиморфизмді қолдану