UNIVERZITET  “MB”  BEOGRAD

POSLOVNI  I  PRAVNI  FALKUTET

SEMINARSKI RAD

PREDMET

:

OBJEKTNO ORIJENTISANO PROGRAMIRANJE

                                                                                           STUDENT:

2

Sadržaj

Sadržaj

......................................................................................................................

2

Uvod

....................................................................................................................

3

OSNOVNE PREDNOSTI  OOP

................................................................................

4

Definicija razreda (klase)

..............................................................................................

5

Dodavanje svojstava  klasi TDate

......................................................................

6

Dodavanje događaja klasi TDate

......................................................................

9

Metodi klase  i podaci  klase

....................................................................................

10

Objekti

................................................................................................................................

11

Ključna reč Self

...............................................................................................................

11

Privatni, zaštićeni i javni članovi

..............................................................................

12

Konstruktori

.......................................................................................................

13

Objekti  i memorija

......................................................................................................

14

Dinamičko kreiranje komponenata

....................................................................

14

Polimorfizam

........................................................................................................

15

Nasljeđivanje

........................................................................................................

17

PREGLED OBJEKTNO ORJENTISANI PROGRAMSKIH JEZIKA

..........................

20

Povijest razvoja

............................................................................................................

20

Java (programski jezik)

...................................................................................................

20

C sharp

...................................................................................................................

20

Python

....................................................................................................................

21

Visual Basic

............................................................................................................

21

Nedostaci

...........................................................................................................

21

Pascal (programski jezik)

....................................................................................

21

Povijest razvoja

............................................................................................................

22

Usporedba Object  Pascala i  ostalih  objektno  orijetiranih  jezika

......................

22

Zaključak

................................................................................................................

24

Literatura

...............................................................................................................

25

background image

4

OSNOVNE PREDNOSTI  OOP

1.

Objekti

 

 

. 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.

Učahurivanje

 

  

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.

Apstrakcija

 

  

- č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.

Nasljeđivanje

 

  

- 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.

Višeobličje

 

  

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:

background image
background image

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 

Želiš da pročitaš svih 36 strana?

Prijavi se i preuzmi ceo dokument.

Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.

Slični dokumenti