440 likes | 1.13k Views
Objektno orijentisano programiranje. Uvod. Nastava. Predavanja Prof. dr Dragan Janković, vanredni profesor Mr Danijel Mijić, viši asistent 2 časa sedmično (30 časova) Vježbe Ognjen Bjelica, asistent 2 časa sedmično (30 časova) Literatura
E N D
Nastava • Predavanja • Prof. dr Dragan Janković, vanredni profesor • Mr Danijel Mijić, viši asistent • 2 časa sedmično (30 časova) • Vježbe • Ognjen Bjelica, asistent • 2 časa sedmično (30 časova) • Literatura • Programski jezik C++ sa rešenim zadacima, Laslo Kraus • Programiranje na programskom jeziku C++, D. Milićević • Alati • Microsoft Visual Studio 2008
Kontakti • danijel.mijic@etf.unssa.rs.ba • www.etf.unssa.rs.ba/~mdanijel/oop • Kancelarija 0-30, prizemlje • ognjen.bjelica@etf.unssa.rs.ba • www.etf.unssa.rs.ba/~ognjen/ • Laboratorija za embedded sisteme, II sprat
Ocjenjivanje • Prisustvo nastavi 5% • Laboratorijske vježbe 15% • Praktični dio ispita 50% • Praktični rad (pisanje programa na računaru) • Opcija 1 • Kolokvijum 1 25% • Kolokvijum 2 25% • Opcija 2 • Integralni ispit 50% • Teoretski dio ispita 30%
Ciljevi izučavanja predmeta • Ovladavanje osnovnim konceptima objektno orijentisanog programiranja • Primjenljivost stečenih znanja u struci
Ishodi učenja • Primjena OOP koncepata u programskim jezicima C++ i C# • Apstrakcija • Enkapsulacija • Nasljeđivanje • Polimorfizam • Sposobnost razvoja aplikacija u Microsoft Visual Studio okruženju • Razvoj konzolnih aplikacija korišćenjem programskog jezika C# • Osnovna znanja za razvoj jednostavnih Windows aplikacija korišćenjem programskog jezika C#
Sadržaj predmeta • Uvod u OOP • Klase • Preklapanje operatora • Izvedene klase • Izuzeci • Generičke funkcije i klase • Ulaz i izlaz
OOP koncept • Objekti su oko nas u realnom svijetu, ljudi razmišljaju o stvarima oko sebe na objektno-orijentisan način • Objekti imaju karakteristike, svojstva, atribute, kao i određena ponašanja • Različiti objekti mogu imati slične atribute i ponašati se na sličan način
Objektno orijentisano programiranje • Strukture podataka i procedure integrisane u klase • Program može da se posmatra kao mreža objekata koji su u interakciji pri čemu svaki objekat zna svoje stanje • Apstrakcija, enkapsulacija, nasljeđivanje i polimorfizam • Ponovno korišćenje objekata
Proceduralno programiranje • Program se može posmatrati kao sekvenca poziva potprograma (procedura) • Strukture podataka se modeliraju odvojeno od koda procedura koje ih obrađuju • Višestruko korišćenje koda postiže se preko biblioteka procedura i funkcija
Karakteristike proceduralnog programiranja • Koncentriše se na procedure – niz akcija, akcijski orijentisano • U suprotnosti sa ljudskim poimanjem realnog svijeta • Jedinica programiranja – funkcija, funkcije se grupišu u programe
Karakteristike OOP • Fokusira se na objekte, slično ljudskom načinu razmišljanja • Omogućava prirodnije modeliranje • Objedinjava atribute i ponašanje objekata • Sakriva detalje implementacije
OOP jezici • C++ • Java • Delphi • C# • Visual Basic .NET • Visual J#
Programski jezik C++ • Objektna nadogradnja jezika C • Početak razvoja (Bjarne Stroustrup) 1979. (C with classes) • Preimenovan u C++ 1983. • Hibridni jezik, nije isključivo objektno orijentisan • Multiplatformski
Programski jezik Java • Razvijen u firmi Sun Microsystems 1995. (James Gosling) • Preuzeti koncepti jezika C++ • Nezavisan od platforme • Java bytecode • Java VM • Java apleti
Programski jezik C# • Microsoft proizvod predstavljen 2000. • Nastao iz programskih jezika C, C++ i Java • Pisan za .NET platformu • Koristi se na Windows sistemima
Modeliranje • Pri razvoju većih programa potrebna je detaljna analiza problema • Na osnovu analize vrši se modeliranje problema, a na osnovu modela i projektovanje programa • UML (Unified Modeling Language) – jezik za modeliranje
Postupak modeliranja • Definisati objekte koji se sreću u opisu problema • Apstrahovati objekte klasama • Definisati elemente klasa • Definisati broj objekata, trenutak njihovog nastajanja, nestajanja i način međusobne interakcije tokom vremena • Definisati odgovornosti
Modeliranje problema klasama • Klase modeluju (apstrahuju) objekte • Atributi (podaci članovi) • Ponašanja (funkcije članovi) • Funkcije članice • Metode • Aktiviraju se kao odgovori na poruke
Programski jezici u okviru predmeta • Teorijski koncepti C++, C# • C++ obuhvata sve OOP koncepte • C# ne posjeduje neke osobine • Praktični dio C#
C, C++, C# • Skoro ista sintaksa, zajedničke mnoge rezervisane riječi • C++ zadržao kompatibilnost sa C, uveo OOP koncepte, ali zadržao i nedostatke C-a • C/C++ se smatraju nesigurnim, “low-level” jezicima • C# potpuno novi jezik, nije kompatibilan sa C/C++ • C# - potpuno objektno orijentisan, “type-safe” jezik
.NET Framework • .NET jezici • Common Language Runtime (CLR) • .NET Framework class library • ASP.NET • Visual Studio