Objektno orijentisano programiranje (OOP) u računarstvu je jedna od programskih paradigmi. Od ranih 1980-ih pa do danas ova paradigma je postala najuticajnija paradigma u komercijalnom razvoju softvera. Programski jezici poput C++ i Java programski jezik su svojom popularnošću utvrdili vodeći status OOP-a kao de facto obaveznog pristupa pri razvoju softvera danas, te i jezici koji tradicionalno nisu bili objektno orijentisani su naknadno dodali OOP koncepte (npr. Visual Basic, Pascal programski jezik itd.).

Osnovni principi

  • ime::"Davor Tokić"
  • spol::"Muški"
  • godiste::"1962".

Ubiti, klasa je poput arhitektonskog nacrta zgrade, po kojoj graditelj (kompajler i linker), tj. izvođač radova (runtime) je u stanju da izgradi objekat te zgrade.

Povezano

Razvoj objektno orijentisanih programskih jezika

Algol Fortran LISP


1960

PL/1 Simula Smalltalk-72 Cobol


1970

Prolog Smalltalk-76 Smalltalk-74 Smalltalk-78 Smalltalk-80 Loops Pascal C


1980

Eiffel Ada C++ ObjectPascal Objective C CLOS


1990

Ada 9 Delphi Java ObjectCobol


2000

C#

Najbolji način za razumijevanje šta je to objektno orijentisano programiranje je da se razumiju razlike između strukturalnog i objektno orijentisanog programiranja. Te razlike se fundamentalne.

  1. Strukturalno programiranje:
 o Zadaci se uvijek u manje razvojene korake razgrađuju
 o Top-Down izrada
 o Podaci u poređu sa funkcijama igraju podređenu ulogu
  1. Objektno orijentisani razvoj:
 o Fundament grade objekti a ne funkcije i procedure
        +Objekat je manje ili vise apstraktan element u oblasti primjene
        +Objekti i tipovi objekata (klase) predstavljaju podatke, koji imaju sopstvene funkcije,
       i samo od tih sopstvenih funkcija smiju biti obrađivane
 o Objekti su ustvari struktura podataka, koji imaju jedan poseban odnos, koji je u metodama utvrđen
  1. Dan Ingals (smalltalk veteran):

Ključna razlika između klasičnog proceduralnog programiranja i objektno orijentisanog programiranja je nepostojanje jasne podele na podatke i funkcije/operacije koje se treba nad podacima izvršiti.

Naime, u objektno orijentisanom programiranju - polazi se od toga da se za bilo kakvu operaciju koristi podatak a da se nad svakim podatkom može izvršiti određeni niz operacija/radnji koje za taj podatak imaju smisla - stoga se umjesto razdvajanja na podatke i funkcije koje procesiraju podatke na određene načine, podacima direktno definišu metodi za operisanje nad njima samima.

umjesto:

podatak A (broj) funkcija smanji_za_jedan(broj) pa se obrada vrsi zvanjem fukcije smanji_za_broj(A) koja izvrši smanjivanje vrednosti brojcanog podatka A za jedan

koristi se:

podatak A (broj) metod podatka A poznaje metod smanji_za_jedan odnosno - da bi smanjili A za jedan jednostavno mu kazemo A.smanji_za_jedan