Pranešėjas Jurij Kuznecov

Slides:



Advertisements
Similar presentations
Ma.
Advertisements

Click on each of us to hear our sounds.
1 Komponentai, kurie turi būti patikrinti, yra objektų klasės, kurios realizuojamos kaip objektai. l Didesniems vienetams negu individuali funkcija “baltos.
Lietuvos vardo kilmė Žmogus, nepažįstantis savo tautos namų – Tėvynės žemės, kurioje nuo seno tėvai ir protėviai gyveno, - nėra savo krašto pilietis! Įsisąmoninkime.
Muzikos ženklų karuselė
NORĖDAMI PAKEISTI SKAIDRĖS STILIŲ – SPUSTELĖKIT E DEŠINIUOJU PELĖS KLAVIŠU ANT SKAIDRĖS FONO IR PASIRINKITE > LAYOUT ARBA DARBALAUKI O ĮRANKIŲ JUOSTOJE.
Vaizdinė užduotis. Kuriose iš šių valstybių galima pamatyti tokius gyvenamuosius namus? Jemene Tanzanijoje Mongolijoje Indonezijoje A B C D 1.
MA. ME MI MO MU MÁ MÉ MÍ MÓ MŮ LA LE LI.
Network address translation Tinklo adresų vertimas
Klasės ir Objektai Javoje
PROJEKTAS LIETUVOS IR NORVEGIJOS POLICIJOS BENDRADARBIAVIMAS IR GEBĖJIMŲ STIPRINIMAS KOVOJANT SU SMURTU ARTIMOJE APLINKOJE IR SMURTU LYTIES PAGRINDU.
Algoritmai ir duomenų struktūros (ADS)
Regresijos determinuotumas
Funkcijos R.
Programavimo ir IT pagrindai
Darbą parengė: Viktorija Drūteikaitė IT2
SSGG (SWOT): Organizacijos stiprybės ir silpnybės, galimybės ir grėsmės (nustatymas, grupavimas, vertinimas, rezultatas) Pagrindinė literatūra: Lietuvos.
MAUDYKLŲ VANDENS KOKYBĖS STEBĖSENOS
Robert Andruškevič AT27D.   Tai yra operacinė sistema, daugiausia naudojama išmaniuosiuose telefonuose, nors ją galima įdiegti ir kituose mobiliuosiuose.
CLIL, MY OPEN WINDOW ON THE WORLD AROUND ME
Video kūrimas su Windows Movie Maker 2.0
Kompiuterio sandara, programinė įranga
Įvadas į dinaminių interneto puslapių kūrimą
Dialogo langai Benas Ragauskas, PS m.
Elektroninių viešųjų paslaugų teikimo pavyzdžių analizė
CC BY-SA mascil consortium 2014
PHP „CodeIgniter“ karkaso saugumas
Panelinių duomenų modeliai
Pagrindinės sąvokos Hipertekstas ir multimedija
Lotus Notes pagrindai Notes darbalaukis.
Atliko: Jokūbas Rusakevičius VU MIF PS 3k 3g
Daiktavardis Dalykas, ugdymo sritis: Tema: Klasė: Priemonės paskirtis:
R paketas ir jo įdiegimas
JavaScript kalbos apžvalga
Programinė įranga.
inovatyvioms mokykloms
IPod MENIU.
Nemokami IKT įrankiai ir programos ugdymo individualizavimui
Gijos (Threads) Java kalboje
Paprasti skaičiavimai. Uždavinių sprendimas
Duomenų struktūros ir algoritmai
Failai ir jų tvarkymas.
Simple Network Management Protocol Paprastas tinklo valdymo protokolas
INTERAKTYVIŲ UŽDUOČIŲ KŪRIMO PROGRAMA
Tekstynų lingvistika ir tekstynų naudojimas klasėje
Programų sistemų gyvavimo ciklo procesai
Antrosios kartos interneto technologijos
Regresijos determinuotumas
Tekstiniai uždaviniai
Saulius Ragaišis, VU MIF
„MARC 21 katalogavimo vadovo“ atnaujinimų pristatymas Įvadas
Virtualus kompiuteris
Duomenų struktūros ir algoritmai
Funkcijos 9 paskaita.
Operacinė sistema Testas 9 klasė
VANDEX SUPER Hidroizoliacinis sluoksnis
Studijų pasirinkimas Lietuvoje ir užsienyje: ką svarbu žinoti?
Priešinės liaukos vėžio ankstyvosios diagnostikos programa 2009
3D skenavimo metodas, jo privalumai. Kam reikalingi avalynės įdėklai?
Projektas “Saugesnis internetas”
Daugelio dokumentų sąsaja (angl. Multiple document interface)
Windows Ribbon Framework
Tyrimų rezultatų interpretacija
Klaipėdos Simono Dacho progimnazija
Klasių diagramos Paskaitos tikslas – supažindinti su klasių diagramos notacija ir jos ryšiu su programiniu kodu.
Klaviatūra.
Grupinio darbo programinė įranga Lotus Notes
Presentation transcript:

Pranešėjas Jurij Kuznecov Objektinis programavimas: apžvalga ir problemos Pranešėjas Jurij Kuznecov Vilniaus universiteto Matematikos ir informatikos institutas

Procedūrinis programavimas Tam kad sukurti programą jo pagrindu, reikia: Apibrėžti užduotį, kurią reikia išspręsti Apgalvoti sąsają tarp vartotojo ir programos Išskaidyti programą į logiškai užbaigtus etapus Sukurti programos tekstą Apderinti programą Testuoti programą

Objektiškai-orientuotas programavimas (OOP) Tam, kad sukurti programą panaudojant šią metodologiją, reikia: Apibrėžtį užduotį Nustatyti unikalius objektus sprendžiamosios užduoties srityje Nustatyti sąryšį tarp objektų Sukurti objektų klases, nustatant kintamuosius, kurie pristato visas galimas būsenas, kuriose gali būti objektas Nustatyti pranešimus, kuriuos priima kiekvienas objektas, ir funkcijų kodus, pagal kuriuos objektas reaguos į šiuos pranešimus Paskelbti duotųjų klasių objektus Nustatyti pradinę sistemos būseną Sukompiliuoti programą

Programavimų kalbų klasifikacija (I) Pirmos kartos kalbų panaudojimo sritis buvo apribota sekančiomis savybėmis: Mažos operatyvinės atminties kiekiu Įvesties/išvesties sistemos netobulumu

Programavimų kalbų klasifikacija (II)

Programavimų kalbų klasifikacija (III) Algoritminių abstrakcijų plėtra. Antra programavimo kalbų karta

Abstraktus duomenų tipas Abstraktus duomenų tipas — tai duomenų visuma kartu su dauguma operacijų, kurias galima vykdyti su tais duomenimis.

Objektiškai – orientuoto programavimo supratimas Pagal objektiškai – orientuotų programų kūrimo metodų autoritetą Grady Booch „objektiškai – orientuotas programavimas (OOP) – tai programavimo metodologija, kuri pagrįsta programos pateikimu objektų visumos pavidalu, kiekvienas iš kurių yra tam tikros klasės realizacija, o klasės sudaro hierarchiją paveldimumo principu.“

Objektai ir klasės Baziniai objektiškai – orientuotos programos blokai yra objektai ir klasės. Objektus galima įsivaizduoti, kaip kažką jaučiamą, įsivaizduojamą ir turinti gerai nustatytą elgseną. Tokiu būdu objektą galima arba pamatyti, arba pačiupinėti, arba žinoti, kad jis yra. Pvz. objektas pateiktas informacijos pavidalu, kuri yra saugoma kompiuterio atmintyje. Tokiu atveju, galima pasakyti, kad objektas – liečiama esmė, kuri ryškiai parodo savo elgseną. Objektas – tai dalis mus supančios realybės, t.y. jis egzistuoja laike ir erdvėje (pirmąkart objekto sąvoką programavime buvo įvesta Simula kalboje). Formaliai nustatyti objektą sunku. Tai galima padaryti per kai kurias savybes, o būtent: objektas turi būseną, elgseną ir gali būti vienareikšmiškai identifikuotas (kitais žodžiais turi unikalų vardą).

Klasė Klasė – objektų aibė, turinti bendrą struktūrą ir bendrą elgseną. Klasė – aprašymas (abstrakcija), kuris parodo, kaip pastatyti egzistuojanti laike ir erdvėje šios klasės kintamąjį, vadinamu objektu.

Baziniai OOP principai Baziniams OO programavimo stiliaus principams priklauso: Inkapsuliacija Paveldimumas Polimorfizmas Pranešimų siuntimas

Inkapsuliacija principas, pagal kurį objekto vidiniai duomenys yra slepiami ir jais galima manipuliuoti tik naudojant objekto viešus metodus.

Paveldėjimas Pagal Grady Booch „paveldėjimas – tai toks santykis tarp objektų, kai vienas objektas pakartoja kito objekto struktūrą ir elgseną“.

Polimorfizmas Leidžia naudoti tas pačias funkcijas skirtingų problemų sprendimui. Polimorfizmas pasireiškia tame, kad po vienu vardu slepiasi skirtingi veiksmai, kurių turinys priklauso nuo objekto tipo.

Objektinio tipo aprašymas Type <objekto tipo vardas >= object <laukas>; …. <metodas>; end ; ObjectPascal turi specialų užrezervuotą žodį class objektų aprašymui. Type <objekto tipo vardas >= class <laukas>; …. <metodas>; end ;

Pavyzdys Įvedamas objektinis tipas „protėvis“, kuris turi duomenų lauką Name (vardas) ir gali atlikti sekančius veiksmus: Skelbti: „Aš esu protėvis!“ Skelbti savo vardą Type tProt = object Name : string ; {objekto duomenų laukas} Procedure Declaration ; {objekto metodų paskelbimas} Procedure MyName ; End ;

Pavyzdys (II) Procedure tProt.Declaration ; {objekto metodo realizacija} begin writeln („Aš – protėvis!“); end ; Procedure tProt.MyName ; {objekto metodo realizacija} writeln(„Aš –„ , Name); end;

Pavyzdys (III) - Egzemplioriai {Objektinio tipo paskelbimas ir jo metodo aprašymas} var v 1: tProt ; {objekto egzemplioriaus paskelbimas} begin v1. Name := ‘Vardenis Pavardenis’; v1.Declaration; v1.MyName end. with v1 do Name:= ‘Vardenis Pavardenis; Declaration ; MyName end ;

Tipų hierarchija (paveldimumas) Tipus galima išskaidyti į hierarchiją. Objektas gali paveldėti komponentus iš kito objektinio tipo. Objektas paveldėtojas – tai palikuonis. Objektas, kuriam paveldi – protėvis. Pabrėžime, kad paveldėjimas yra priskiriamas tik prie tipų, bet ne prie objektų egzempliorių.

Tipų hierarchija (pavyzdys) (I) tуре tSon= оbject(tProt) {Tipas, paveldintis tProt } procedure Declaration; {protėvio metodų perdengimas } procedure Му Name(Prot : tProt); end ;   tуре tGrandSon=object(tSon) {Tipas, paveldintis tSon} procedure Declaration ; {Protėvio metodų perdengimas}

Tipų hierarchija (pavyzdys) (II) procedure tSon.Declaration ; {dukterinių objektų metodų realizacija} begin writeln (" Aš — tėvas !"); end; -------------------------------------------- procedure tSon .Му Name ( prot : tProt ); inherited Му Name ; {tiesioginio protėvio metodo iškvietimas} writeln ("Aš — sūnus ", prot.Name); ---------------------------------------------------- procedure tGrandSon.Declaration; writeln (" Aš — anūkas !");

Tipų hierarchija (pavyzdys) (III) {Objektinių tipų egzempliorius galima aprašyti kaip tipizuotas konstantas, kas ir yra padaryta } const prosen : tProt = ( Name : "Antanas Adomaitis Kazio"); tėvas : tSon = ( Name : "Justas Adomaitis Antano"); anūkas : tGrandSon = ( Name : "Julius Adomaitis Justo"); {skyrius, kuriame yra aprašomos procedūros ir funkcijos} begin prosen.Declaration ; {bendro protėvio metodų iškvietimas } prosen.Му Name; writeln; tėvas.Declaration; tėvas.MyName(prosen); { objekto tėvas tipo tSon metodų iškvietimas } anūkas.Declaration; { objekto anūkas tipo tGrandSon iškvietimas} anūkas.MyName ( tėvas ); end.

Tipų hierarchija (pavyzdys) (IV) Programos darbo rezultatas bus sekantis: Aš – protėvis! Aš — Antanas Adomaitis Kazio   Aš —tėvas! Aš — Justas Adomaitis Antano Aš —sūnus Antanas Adomaitis Kazio Aš —anūkas! Aš — Julius Adomaitis Justo Aš — sūnus Justas Adomaitis Antano

AČIŪ UŽ DĖMESĮ