Transcript 01-Uvod
Uvod
Predavanja
◦ Doc. dr Danijel Mijić
◦ 2 časa sedmično (30 časova)
Vježbe
◦ Ognjen Bjelica, mr, viši 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-2013
[email protected]
www.etf.unssa.rs.ba/~mdanijel/oop
Kancelarija 2-46, II sprat
[email protected]
www.etf.unssa.rs.ba/~ognjen/
Laboratorija za embedded sisteme, II sprat
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%
Ovladavanje osnovnim konceptima objektno
orijentisanog programiranja
Primjenljivost stečenih znanja u struci
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 desktop
aplikacija korišćenjem programskog jezika C#
Uvod u OOP
Klase
Preklapanje operatora
Izvedene klase
Izuzeci
Generičke funkcije i klase
Ulaz i izlaz
Objekti su oko nas u realnom svijetu, ljudi
razmišljaju o stvarima oko sebe na objektnoorijentisan 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
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
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
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
Fokusira se na objekte, slično ljudskom
načinu razmišljanja
Omogućava prirodnije modeliranje
Objedinjava atribute i ponašanje objekata
Sakriva detalje implementacije
C++
Java
Delphi
C#
Visual Basic .NET
Visual J#
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
Razvijen u firmi Sun Microsystems 1995.
(James Gosling)
Preuzeti koncepti jezika C++
Nezavisan od platforme
Java bytecode
Java VM
Java apleti
Microsoft proizvod predstavljen 2000.
Nastao iz programskih jezika C, C++ i Java
Pisan za .NET platformu
Koristi se na Windows sistemima
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
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
Klase modeluju (apstrahuju) objekte
◦ Atributi (podaci članovi)
◦ Ponašanja (funkcije članovi)
Funkcije članice
◦ Metode
◦ Aktiviraju se kao odgovori na poruke
Teorijski koncepti C++, C#
◦ C++ obuhvata sve OOP koncepte
◦ C# ne posjeduje neke osobine
Praktični dio 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, “typesafe” jezik
.NET jezici
Common Language Runtime (CLR)
.NET Framework class library
ASP.NET
Visual Studio