Objektno orijentirano programiranje vs proceduralno programiranje
Objektno orijentirano programiranje (OOP) i proceduralno programiranje dvije su programske paradigme. Programska paradigma temeljni je stil računalnog programiranja, a razlikuju se u načinu na koji su predstavljeni različiti elementi programa i kako su definirani koraci za rješavanje problema. Kao što i samo ime govori, OOP se usredotočuje na predstavljanje problema pomoću objekata iz stvarnog svijeta i njihovog ponašanja, dok se Proceduralno programiranje bavi predstavljanjem rješenja problema pomoću procedura, koje su zbirke koda koje se izvršavaju u određenom redoslijedu. Postoje programski jezici koji podržavaju ključne aspekte OOP-a (nazvani OOP jezici), proceduralnog (nazvanog Proceduralni jezici) i oba. Ali jedna važna stvar koju treba napomenuti jest da su OOP i Proceduralni dva načina predstavljanja problema koji se trebaju riješiti i nije važno koji se jezik koristi. Drugim riječima,OOP jezici mogu se koristiti za proceduralno programiranje, dok se proceduralni jezici ponekad mogu koristiti za OOP, uz određeni napor.
Proceduralno programiranje je način programiranja utvrđivanjem skupa koraka za rješavanje određenog problema i točnog redoslijeda da ih treba izvršiti da bi se postigao željeni ishod ili stanje. Na primjer, ako želite izračunati stanje na kraju mjeseca za bankovni račun, tada će potrebni koraci biti sljedeći. Prvo stječete početno stanje na računu, a zatim smanjujete sve iznose terećenja nastale tijekom mjeseca. Nakon toga dodajete sve iznose kredita koji su se dogodili tijekom mjeseca. Na kraju postupka dobit ćete završno stanje računa na kraju mjeseca. Jedan od glavnih koncepata proceduralnog programiranja je poziv na postupak. Postupak poznat i kao potprogram, metoda ili funkcija sadrži poredani popis uputa koje treba izvršiti. Postupak se može pozvati u bilo kojem trenutku tijekom izvršenja bilo kojim drugim postupkom ili samim sobom. Primjeri proceduralnih programskih jezika su C i Pascal.
U OOP-u je fokus na razmišljanju o problemu koji treba riješiti u smislu elemenata iz stvarnog svijeta i predstavljanju problema u smislu predmeta i njihovog ponašanja. Objekt je struktura podataka koja jako podsjeća na neki objekt iz stvarnog svijeta. Objekti sadrže podatkovna polja i metode koje predstavljaju atribute i ponašanje objekata iz stvarnog svijeta. Postoji nekoliko važnih koncepata OOP-a kao što su apstrakcija podataka, inkapsulacija, polimorfizam, slanje poruka, modularnost i nasljeđivanje. Neki od popularnih OOP jezika su Java i C #. Međutim, mogu se koristiti i za provođenje proceduralnog programiranja.
Ključna razlika između OOP-a i proceduralnog programiranja je u tome što je fokus proceduralnog programiranja raščlamba programskog zadatka na kolekciju varijabli i potprograma, dok je fokus OOP-a raščlanjivanje programskog zadatka na objekte koji uvrštavaju podatke i metode. Najuočljivija razlika mogla bi biti u tome što dok proceduralno programiranje koristi postupke za izravni rad na strukturama podataka, OOP će povezati podatke i metode tako da objekt radi na vlastitim podacima. Kada je riječ o nomenklaturi, postupak, modul, poziv procedure i varijabla u proceduralnom programiranju često se nazivaju metodom, objektom, porukom i atributom u OOP-u.