Objektno orijentisano programiranje
UNIVERZITET “MB” BEOGRAD
POSLOVNI I PRAVNI FALKUTET
SEMINARSKI RAD
PREDMET
:
OBJEKTNO ORIJENTISANO PROGRAMIRANJE
STUDENT:
2
Sadržaj
................................................................................
..............................................................................................
Dodavanje svojstava klasi TDate
......................................................................
Dodavanje događaja klasi TDate
......................................................................
....................................................................................
Privatni, zaštićeni i javni članovi
..............................................................................
Dinamičko kreiranje komponenata
....................................................................
PREGLED OBJEKTNO ORJENTISANI PROGRAMSKIH JEZIKA
...................................................................................................
....................................................................................
Usporedba Object Pascala i ostalih objektno orijetiranih jezika

4
OSNOVNE PREDNOSTI OOP
1.
. U OOP metafori osnovna jedinica je objekt, implementirani objekt
nazivamo klasom. U objektno orijentiranom svijetu izbjegava se korištenje
globalnih varijabli, nego svaki objekt ima svoje varijable, koje još zovemo i
podatkovni članovi
klase. Isto tako nema više ni samostojećih funkcija, nego
funkcije pripadaju klasi, bilo da vanjskom svijetu nešto kazuju o stanju objekta,
ili mijenjaju stanje objekta, a zovemo ih
funkcijski članovi
klase ili
metode
.
2.
ili enkapsulacija objekata. Pošto ne postoje globalne varijable, iz
drugih dijelova koda nije moguć pristup varijablama klase nikako osim
ugrađenim metodama za njihovo čitanje i pisanje (ukoliko smo ih deklarirali kao
privatne, što je preporučeno). Na taj način se osigurava da objekt ne može doći u
neko nepredviđeno stanje iz bilo kojeg razloga, npr. kad mu se pristupa
istovremeno iz više dijelova koda (ako imamo višenitno programiranje) jer
nužno je koristiti funkcijske članove objekta u koje se mogu ugraditi sigurnosni
mehanizmi poput sinkronizacije.
3.
- čest je slučaj da se neki objekti minimalno razlikuju, i zasebno
definiranje svakog od njih je redundantno. Osim toga za samo efikasno
projektiranje praktično je pojednostavljivanje konkretnog problema. Tu ulaze u
igru apstraktne klase i sučelja.
4.
- kad već definiramo neki objekt, a zatreba nam neki sličan
objekt koji je zapravo podskup početnog objekta, moguće je
naslijediti
početni
objekt, čime štedimo vrijeme za programiranje (makar to bio copy-paste) i
diskovni prostor.
5.
ili polimorfizam - kao što je
preopterećivanje
operatora zgodna
stvar ponekad, tako preopterećivanje metoda zovemo polimorfizmom. Moguće
je definirati nekoliko metoda istog imena, a svaka će kao parametre primati
objekte različitih tipova.
type
TDate= class
Month,Day,Year:Integer;
function LeapYear:Boolean; end;
proce dure Set Value
(a,d, y: Integer);
proce dure TDate.SetValue(m, begin
Month := m; Day := d; Year:=y;
end;
function TDate.LeapYear:
d, y: Integer);
begin
Boolean;
Result:= IsLeapYear(Year);
/
ca
l
IsLeapYear
in SysUtils.pas
end;
5
Definicija razreda (klase)
Klasa (class) je korisnički definisan tip podataka koji ima stanje (svoju
reprezentaciju) i neke operacije (svoje ponašanje). Klasa sadrži neke interne
podatke i neke metode, u formi procedura i funkcija, i obično opisuje generičke
karakteristike i ponašanje velikog broja sličnih objekata.
Objekat (object) je instanca klase, ili promjenjiva tipa podataka definisanog
klasom. Objekti su stvarni entiteti. Kada se program izvršava, objekti zauzimaju
dio memorije za njihove interne reprezentacije. Veza između objekata i klasa
je jednaka vezi između promjenjive i tipa podataka.
Da biste deklarisali tip podataka klase u Object Pascalu sa nekim lokalnim
poljima podataka i nekim metodima, upotrebite sljedeću sintaksu:
Funkcija i procedura definisane u kodu iznad trebalo bi da u potpunosti
budu definisane u implementacionom dijelu iste jedinice, uključujući i
deklaraciju klase. Možete dopustiti Delphiju da generiše kostur definicije metoda
upotrebom funkcije editora Class Completion (jednostavno pritisnite
kombinaciju tastera Ctrl+C dok se kursor nalazi unutar definicije klase).
Možete naznačiti da su metodi dio klase TDate po prefiksu naziva klase
(koristeći tačku između) kao u sledećem kodu:
Kada je klasa definisana, možemo kreirati objekat i koristiti ga na sledeći način:

procedure TDateForm.BtnReadClick(Sender:
TObject); begin
EditYear.Text := IntToStr (TheDay.Godina );
EditMonth.Text := IntToStr (TheDay.Mjesec);
EditDay.Text := IntToStr (TheDay.Dan);
7
Sada imamo klasu ažuriranu novim svojstvima te možemo ažurirati primjer
tako da koristi svojstva kada je to pogodno. Na primjer, možemo direktno
upotrebiti svojstvo Tex t i možemo upotrebiti neka polja za izmjene da bismo
omogućili korisniku da pročita i upiše vrednosti tri glavna svojstva (kao što
možete videti na slici ispod).
Ovo se odvija kada se klikne kontrola Pročitaj:
SLIKA 1: Orozor programa koji koristi klasu TData
Kontrola Zapiši obavlja obrnutu operaciju. Možete napisati kod na neki od
sledećih načina:
function TDate.UzmiMjesec:
Integer; var
y, m, d: Word;
begin
DecodeDate (fDate, y, m, d);
Result := m;
end;
procedure TDate.podesiMjesec(const Value:
Integer); begin
if (Value < 0) or (Value > 12) then
raise EDateOutOfRange.Create ('Pogrešan
Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.
Slični dokumenti