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