22
JU Srednja ELEKTRO – EKONOMSKA škola OBJEKTNO ORIJENTISANO PROGRAMIRANJE Asim Mahmutović email: [email protected]

OBJEKTNO ORIJENTISANO PROGRAMIRANJEeeskolabp.me/wp-content/uploads/2019/09/UVOD-u-OOP.pdf · 2019-09-22 · podataka u jeziku C++ i C# je klasa. Klasa definiše izgled objekta i odrađuje

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

JU Srednja

ELEKTRO – EKONOMSKA škola

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

Asim Mahmutović

email: [email protected]

UVOD Objektno orijentisano programiranje preuzelo je

najbolje ideje strukturnog programiranja koje su

proširene sa nekoliko novina. Kao rezultat toga,

poboljšan je način organizovanja programa. U

najopštijem smislu, program može da bude

organizovan na dva načina: sa naglaskom na kôdu

(tj. na tome šta se dešava) ili sa naglaskom na

podatke (sa kojima se radi). Korišćenjem

isključivo tehnika strukturnog programiranja,

programi su obično organizovani oko kôda koji operiše sa podacima.

UVOD

Objekno orijentisani programi rade na drugi

način. Oni su organizovani oko podataka, pri

čemu je ključni princip da podaci kontrolišu

pristup kôdu. U objektno orijentisanom jeziku,

tip podataka precizno definiše šta sa tim podacima može da se radi.

UVOD

Tri su važne osobine programskog jezika koje

ga čine objektno orijentisanim:

1.Klase i objekti – enkapsuliranje skrivanje podataka

2. nasleđivanje (inheritance)

3. polimorfizam (polymorphism)

Skrivanje podataka Skrivanje (kapsuliranje) podataka je programerski

mehanizam koji povezuje kôd i podatke sa kojima

radi, na taj način da i kôd i podaci su sigurni od

spoljašnjih uticaja. U objektno orijentisanom

jeziku, kôd i podaci mogu da se povežu tako da ne

budu vidljivi spolja, tako što se smještaju u

objekat. Unutar objekta, kôd i podaci mogu da

budu privatni ili javni. Privatnom kôdu ili

podacima ne mogu da pristupaju djelovi programa

koji se nalaze izvan objekta, a javni djelovi

objekta koriste se za obezbeđivanje kontrolisanog interfejsa ka privatnim elementima objekta.

Skrivanje podataka Osnovna jedinica kojom se postiže skrivanje

podataka u jeziku C++ i C# je klasa. Klasa

definiše izgled objekta i odrađuje podatke i

kôd koji će raditi sa podacima. Objekti su

primjerci klase. Kôd i podaci koji čine klasu

zovu se članovi klase. Podaci članovi (member

data) klase su podaci koji su definisani u klasi,

a funkcije članice (member functions) čini kôd koji radi sa tim podacima.

Nasleđivanje Nasleđivanje je proces kojim se jednom

objektu omogućuje da preuzme svojstva

drugog objekta. To je važno zato što se time podržava pojam hijerarhijske klasifikacije.

Nasleđivanje Na primjer, sorta jabuke crveni delišes je dio

klasifikacije jabuka, koje su zauzvrat dio klase

voća, a voće opet potpada pod širu klasu hrane.

Klasa hrane konkretno posjeduje određene

kvalitete (ukus, hranljiva vrijednost i sl.) koji se

zatim primjenjuju I na njegovu potklasu, tj. voće.

Osim pomenutih karakteristika hrane, klasa voće

ima određene karakteristike (sočnost, slast i sl.)

koje ga razlikuju od druge hrane. Klasa jabuka

definiše svojstva karakteristična za jabuke (raste na drveću, nije tropsko voće i sl.).

Nasleđivanje Crveni delišes nasleđuje svojstva svih prethodno

pomenutih klasa, a definiše samo ona koja ga čine

jedinstvenim (npr. mora biti crvene boje). Bez

korišćenja hijerarhija, svaki objekat morao bi

eksplicitno da definiše sve svoje karakteristike.

Kada se koristi nasleđivanje, objekat treba da

definiše samo svojstva koja ga čine jedinstvenim

unutar klase, a svoje generalne osobine nasleđuje

od roditeljskih klasa. Na taj način mehanizam

nasleđivanja omogućuje jednom objektu da bude specifični primjerak nekog opštijeg slučaja.

Polimorfizam Polimorfizam (na grčkom “više oblika”) je osobina

koja omogućuje projektovanje zajedničkog

interfejsa koje će se zatim preslikavati u različite

akcije. Pojam polimorfizma se obično izražava

frazom “jedan interfejs, više metoda”, a najlakše

se razumije na primjeru. Korisnik koji kupuje auto

sigurno neće biti zadovoljan ako se njegov novi

model razlikuje od starog po načinu korišćenja, na

primjer, da se umjesto vještačke inteligencije dobije pogrešan nivo zaštite.

Polimorfizam Slično je i sa programskim komponentama:

programer ne treba da se opterećuje time koju

verziju komponente koristi, već će

jednostavno tražiti od komponente određenu

uslugu, a na njoj je da mu je pruži na odgovarajući način. To je polimorfizam.

Polimorfizam Polimorfizam uprošćava programe jer omogućuje

definisanje generalnih operacija; kompajleru je

ostavljen zadatak da izabere određenu akciju (tj.

metod) koji se primjenjuje na konkretnu situaciju.

Programer treba samo da poznaje i koristi uopšteni

interfejs.

Objekt je naziv za skup svojstava koja

možemo objediniti u smislenu cjelinu.

Šta je .NET okruženje? .NET okruženje je nova i revolucionarna platforma za razvoj aplikacija napravljena od strane Microsofta. Ne služi za „razvoj aplikacija u operativnom sistemu Windows". lako prva verzija .NET okruženja radi na operativnom sistemu Windows, budući planovi podrazumijevaju i rad na drugim sistemima, kao što su FreeBSD, Linux, Macintosh, pa čak i na uređajima klase ličnog digitalnog asistenta (PDA). Jedan od ključnih razloga za razvoj ove tehnologije je namjera da ona postane sredstvo kojim se vrši integracija različitih operativnih sistema.

Šta je .NET okruženje? Pored toga, ova definicija .NET okruženja ne ograničava

mogućnosti bilo kog tipa aplikacije. Ograničenja zapravo

ne postoje - .NET okruženje daje vam mogućnost izrade

Windows aplikacija, Web aplikacija, Web servisa i skoro

svega ostalog što bi ste mogli zamisliti. .NET okruženje

dizajnirano je tako da se može koristiti iz bilo kog jezika:

C#, C++, Visual Basic, JScript, pa čak i starije jezike kao

što je COBOL. Da bi sve to funkcionisalo, pojavile su se i

posebne verzije ovih jezika za .NET: Managed C++, Visual

Basic .NET, JScript .NET, kao i razni drugi. Ne samo da svi

oni imaju pristup .NET okruženju, već mogu i međusobno

komunicirati. Sasvim je moguće kod programiranja u

jeziku C# koristiti kod napisan u Visual Basic .NET-u, kao i obrnuto.

Šta se nalazi unutar .NET okruženja?

.NET okruženje se najvećim dijelom sastoji od

ogromne biblioteke koda koju upotrebljavamo

preko klijentskih jezika (kao što je C#) koristeći

tehnike objektno orijentisanog programiranja

(OOP). Ova biblioteka podijeljena je na različite

module koje koristimo u zavisnosti od zadatka. Na

primjer, jedan modul sadrži dijelove potrebne za

pravljenje Windows aplikacija, drugi je vezan za

mreže, a neki za razvoj Weba. Neki moduli su

podeljeni u različite podmodule, kao što su

moduli za pravljenje Web servisa unutar modula za razvoj Weba.

Šta se nalazi unutar .NET okruženja?

Namjera je da različiti operativni sistemi

podržavaju neke ili sve module zavisno od

njihovih karakteristika. Okruženje osim

biblioteke posjeduje i .NET zajedničko izvršno

jezičko okruženje (engl. Common Language

Runtime - CLR), koje je odgovorno za

izvršavanje svih aplikacija razvijenih uz pomoć .NET biblioteke.

Šta je C# ? C# je jedan od jezika koji služi za izradu

aplikacija koje mogu raditi pod .NET CLR-om.

On predstavlja evoluciju jezika C i C++ koju je

kreirao Microsoft da bi se radilo sa .NET

okruženjem. U njegovom razvoju korišćene su

mnoge prednosti drugih jezika, naravno uz

otklanjanje njihovih mana. Razvoj aplikacija u

jeziku C# je jednostavniji nego u C++, jer je sintaksa prostija.

Šta je C# ? C# je moćan jezik i postoji veoma mali broj

stvari koje bi smo uradili u C++ jeziku prije

nego u C#-u. Paralelne mogućnosti jezika C#

onima naprednijim u C++, kao što je direktno

pristupanje i manipulisanje sistemskom

memorijom, može biti izvedeno jedino kroz kod koji je obilježen kao nesiguran.

Kakve aplikacije možemo pisati u C#-u?

C# nema ograničenja u pogledu toga kakve sve

aplikacije možemo napraviti. C# koristi

okruženje i samim tim nema ograničenja u

vezi sa mogućim aplikacijama.

Kakve aplikacije možemo pisati u C#-u?

Windows aplikacije - To su recimo, aplikacije

tipa Microsoft Office koje imaju izgled

Windowsa i odlično se slažu sa njim. Ovo je

uprošćeno korišćenjem modula Windows

formulara unutar .NET okruženja, koji u stvari

čini biblioteka kontrola (kao što su dugmad,

palete alatki, meniji i tako dalje) koje nam

koriste pri izradi Windows korisničkog

interfejsa (UI).

Kakve aplikacije možemo pisati u C#-u?

- Web aplikacije - Web strane koje možemo

vidjeti kroz bilo koji čitač. .NET okruženje

pruža veoma moćan sistem generisanja Web

sadržaja i to dinamički, dozvoljavajući

personalizaciju, sigurnost i još mnogo toga.

Ovaj sistem se naziva Active Server Pages .NET

(ASP.NET), a jezik C# možemo koristiti za

izradu ASP.NET aplikacija uz pomoć Web

formulara.

Kakve aplikacije možemo pisati u C#-u?

- Web servisi - Predstavljaju nov i uzbudljiv

način izrade raznovrsnih distribuiranih

aplikacija. Koristeći Web servise preko

Interneta možemo razmenjivati bilo koju vrstu

podataka, koristeći prostu sintaksu, ne vodeći

računa o tome u kom jeziku je napisana

aplikacija niti na kom sistemu je postavljena.