Pipedija - tautosaka, gandai, kliedesiai ir jokios tiesos! Durniausia wiki enciklopedija durnapedija!


Objektinis programavimas

Iš Pipedijos - durniausios enciklopedijos.
Jump to navigation Jump to search

Objektinis programavimasprogramavimo tipo atseit esą paradigma, grįsta objektais, kurie tipo kaip tai esą pranašesni už visokias procedūras.

Yra tokie keturi objektinio programavimo principai:

  • Enkapsuliacija - tai reiškia, kad objektas kokius tai savo vidinius duomenis enkapsuliuoja, t.y., paslepia nuo aplinkos, kad nesimatytų ko nereikia.
  • Paveldimumas - tai reiškia, kad objektas paveldi iš kito objekto visokius dalykus, tai reiškia, kad kokia nors klasė gali pernaudoti superklasės galimybes
  • Polimorfizmas - tai reiškia, kad tas pats dalykas gali būti pasiekiamas ir naudojamas įvairiais pavidalais, t.y., vienur kažkokią superklasę kažkuo papildžius, tuo daiktu pasipildo ir subklasės
  • Abstrakcija - tai reiškia, kad vienas objektas ar ten kokia tai klasė nežino, kaip sudaryta kita klasė ir žinoti to neturi, ir gali keistis duomenimis, naudojant interfeisus

Tai iš tokio apibrėžimo matom, kad čia vanduo vandenuotas, tiksliau sviestas sviestuotas, nes bet kuri procedūra gali tapti kitos procedūros dalimi, o struktūra - irgi kokios nors struktūros dalimi, taip kad nieko čia išties labai naujo.

Praktikoje objektinis programavimas greičiau pasireiškia per tai, kad į vieną struktūrą būna suplakami visokie kintamieji ir procedūros (funkcijos), taip kad mažiau painiotųsi, o paskui dar tie kratiniai panaudojami kaip templeitai, kuriant naujus panašius objektus, t.y., kad programuotojui nereikėtų pačiam rankomis daryti copy-paste, už tą jį padaro kompiliatorius ar interpretatorius. Savaime aišku, kai šitaip automatizuotai kopypeistinama, tai gaunasi didelis perteklius visokių perteklinių niekam nereikalingų kintamųjų ir kreipimųsi į visokias funkcijas, dėl ko objektinėmis kalbomis parašytos programos atminties naudoja daug, o dirba lėtai - aišku, čia lyginant su procedūrinėmis kalbomis.

Objektinis ir procedūrinis programavimas

Objektiniam programavimui atseit esą esą atvirkščias procedūrinis programavimas, kuriame remiamasi ne objektais, o procedūromis (funkcijomis).

Realiai gi ne - natūralus pavyzdys yra kad ir visiškai procedūrinė C kalba, kur struktūra su pointeriais į objektą netgi ir sintaksiškai atrodo kaip objektas, nors realiai gi čia procedūrinė klasika. Kitas pavyzdys - Pascal kalba, kuri laikoma vienu iš procedūrinio programavimo fundamentalių implementacijų (aišku, tik po Algol, kuri nuo to Pascal ne tiek jau ir toli). Tai vat, Objective Pascal implementacijos yra vienos iš ryškiausių ir geriausių objektinio programavimo implementacijų, kurių dėka tas pats objektinis programavimas nemenka dalimi ir išsivystė.

Dar čia teisybės dėlei pridėkim, kad ir istoriškai taip gaunasi - pirma pasaulyje objektinė programavimo kalba buvo tokia Simula, kuri buvo tiesiog pirmos pasaulyje procedūrinės programavimo kalbos Algol išplėtimas.

Kaip sako patyrę programuotojai - objektas tėra šablonizuotas neimspeisas su prie jo prikabintomis procedūromis ir kintamaisiais, ir nieko daugiau.

Žodžiu, priešinti dalykų nereikėtų, nes tai gali būti labai smarkiai klaidinga.

Objektinio programavimo kalbų pavyzdžiai

Čia kai kurios kalbos, kurios palaiko objektinį programavimą: