Professional Documents
Culture Documents
Programski jezici
Elektronski fakultet u Ni
Modularno programiranje
Procedure sa zajednikom funkcionalnou su integrisane u
jedan modul
Svaki modul moe da ima svoje sopstvene podatke.
Viestruko korienje struktura podataka i procedura
- Objekat
Primerci (istace) klasa. pojedninani,.
Svi objekti jedne klase imaju strukturu definisanu klasom i nad
njima se mogu izvravati samo operacije definisane klasom kojoj
pripadaju.
- Poruka
Objekat odgovara na poruku time to se izvrava odgovarajui
metod.
Kaemo da na objekte delujemo porukama, pri emu svaka
poruka predstavlja poziv metoda (funkcije ili procedure)
definisanog u klasi kojoj objekat pripada.
Pitanja
A
A
Stand up
Look up
B
in
I was born in
Pitanja sa
argumentima
on
(yes/no)
Inkapsulacija zatvaranje
Interface
(Methods and messages)
Korisnik klase
Primer
public class Light {
protected boolean isOn;
Methods
Properties
Class
Kreiranje objekta:
Light kitchenLight = new Light();
kitchenLight.TurnOn();
Nasleivanje
Nasleuju se sva svojstva postojee
klase i njima se dodaju nova.
Class Derived extends
Base
{
}
Nasleivanje
Nasleivanje omoguava da se definiu nove klase na osnovu
postojeih.
Nova klasa se definie kao specijalizacija ili proirenje neke
klase koja ve postoji.
Nova klasa inicijalno ima sva svojstva klase koju nasleuje.
Novoj klasi mogu da budu pridodata nova svojstva.
Kada jedna klasa, u oo terminologiji podklasa (subclass,
child class, derived class), nasleuje neku klasu , u oo
terminologiji superklasa (superclass, parent class,
base class), onda podklasa nasleuje sva svojstva
superklase.
Nasleivanje
ta se moe menjati
Primer nasleivanja
IS A relacija
Nasleivanjem se definie IS A relacija izmeu
originalne klase i nove, izvedene klase.
Kako objekti podklase mogu da prime sve poruke
kao i objekti superklase oni se mogu koristiti
svuda gde se mogu koristiti i objekti superklase.
Svaki objekat jedne klase je i (is an) objekat
njene superklase.
Hierarhija klasa
Kada se nasleivanje primeni viestruko
dobija se struktura tipa stabla koja se obino
naziva hierarhija klasa.
Object
C1
C1a
C1b
C2
Primer hierarhije klasa
C2a
C2b
Polimorfizam
Polimorfizam se esto navodi kao najae svojstvo OO jezika.
Termin oznaava vie formi - "many forms", i u kontekstu
objektnih jezika ukazuje na mogunost da se razliiti metodi
pozivaju preko istog interfejsa.
Sposobnost da raziliiti objekti odgovore ne iste poruke (na
sebi svojstven nain).
Koristi se isti interfejs za ratliite objekte.
Polimorfizam
Zakasnelo povezivanje.
Shape
Line
print
resize
BoldLine
print
print
resize
Circle
print
resize
Apstrakcija
Mentalni proces izdvajanja nekih karakteristika isvojstava i
iskljuivanja preostalih koja nisu relevantna
Tipovi apstrakcije
Klasifikacija vri se apstrakcija objekata sa istim osobinama u jedan tip
DBMS
software
Microsoft
software
Relacija
IS_MEMBER_OF
Relacija
IS_MEMBER_OF
Word
PowerPoint
...
Access
Oracle
...
Sybase
Tipovi apstrakcije
agregacija razliiti tipovi podataka se udruuju u sloeniji tip
avion
Relacija
IS_PART_OF
Krila
Tokovi
...
Motori
Tipovi apstrakcije
generalizacija uoavanjem zajednikih osobina i
operacija vie tipova kreira se novi generalniji tip
superclass/supertype
redovni
student
vanredni
IS_A
relationship
...
poslediplomci
subclass/subtype
Tipovi apstrakcije
student
generalizacija
Redovnistudent
klasifikacija
Saa
Tijana
...
Jovan
agregacija
Ime
Brojindekasa...
OO jezici
C
ALGOL
Objective-C
Pascal
SIMULA
Delphi
Object Pascal
C++
Smalltalk
Java
Eiffel
LISP
Flavors
Loops
Actor
CLOS
Primer
Hoemo da nacrtamo krug sa krstom u njemu.
Krug treba da ima radijus r i centrom u poziciji
(x,y).
Potrebna su nam tri objekta da bi reili ovaj
problem. Jedan krug i dve linije.
Smalltalk
C++
1980 Bjarne Stroustrup je projektovao skup jezika koji su bili
nazvani "C With Classes" to je posluilo kao osnova za
definisanje jezika C++.
Proirenje programskog jezika C
Klase su ujedno i tipovi podataka
New(krug); krug.ICircle(x,y,r);
New(vert); vert.ILine(x,x-r,x,y+r);
New(hori); hori.ICircle(x-r,y,x+r,y);
krug.display; vert.display,
hory.display
Java
May 1995.
Popularan je jer je jednostavniji od C++.
Ima primenu u razvoju Internet aplikacija
OO programiranje
Programmer
- Viestruko korienje
- Laka proirljivost
- Lako prilagoavanje
- Jednostavnost