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