Programare orientată pe obiecte vs programare procedurală
Programarea orientată pe obiecte (OOP) și programarea procedurală sunt două paradigme de programare. O paradigmă de programare este un stil fundamental de programare a computerelor și diferă în modul în care sunt reprezentate diferitele elemente ale programului și în modul în care sunt definiți pașii pentru rezolvarea problemelor. După cum sugerează și numele, OOP se concentrează pe reprezentarea problemelor folosind obiecte din lumea reală și comportamentul lor, în timp ce, Programarea procedurală se ocupă cu reprezentarea soluțiilor la probleme folosind proceduri, care sunt colecții de cod care rulează într-o anumită ordine. Există limbaje de programare care acceptă aspecte cheie ale OOP (numite limbaje OOP), procedurale (numite limbaje procedurale) și ambele. Dar un lucru important de remarcat este că OOP și procedural sunt două moduri de a reprezenta problemele care trebuie rezolvate și nu contează limbajul folosit. Cu alte cuvinte, limbajele OOP pot fi folosite pentru programarea procedurală, în timp ce limbajele procedurale pot fi uneori folosite pentru OOP, cu ceva efort.
Programarea procedurală este o modalitate de programare prin identificarea setului de pași pentru a rezolva o anumită problemă și ordinea exactă în care ar trebui executați pentru a ajunge la rezultatul sau starea dorită. De exemplu, dacă doriți să calculați soldul de închidere de la sfârșitul lunii pentru un cont bancar, atunci pașii necesari ar fi următorii. În primul rând, obțineți soldul inițial al contului și apoi reduceți toate sumele debitoare apărute în cursul lunii. După aceea, adăugați toate sumele de credit apărute în cursul lunii. La sfârșitul procesului, veți obține soldul de închidere de la sfârșitul lunii al contului. Unul dintre conceptele principale ale programării procedurale este apelul de procedură. O procedură cunoscută și ca subrutină, metodă sau funcție conține o listă ordonată de instrucțiuni care trebuie efectuate. O procedură poate fi apelată în orice moment în timpul execuției prin orice altă procedură sau prin ea însăși. Exemple de limbaje de programare procedurală sunt C și Pascal.
În OOP, accentul se pune pe gândirea problemei de rezolvat în termeni de elemente din lumea reală și reprezentarea problemei în termeni de obiecte și comportamentul acestora. Obiectul este o structură de date care seamănă foarte mult cu un obiect din lumea reală. Obiectele conțin câmpuri de date și metode care reprezintă atributele și comportamentul obiectelor din lumea reală. Există mai multe concepte OOP importante, cum ar fi abstractizarea datelor, încapsularea, polimorfismul, mesageria, modularitatea și moștenirea. Unele limbaje OOP populare sunt Java și C. Cu toate acestea, ele pot fi folosite și pentru a efectua programarea procedurală.
Diferența cheie dintre OOP și programarea procedurală este că obiectivul programării procedurale este de a împărți sarcina de programare într-o colecție de variabile și subrutine, în timp ce obiectivul OOP este de a împărți sarcina de programare în obiecte, care încapsulează date și metode. Cea mai notabilă diferență ar putea fi aceea că, în timp ce programarea procedurală utilizează proceduri pentru a opera direct asupra structurilor de date, OOP va grupa datele și metodele împreună, astfel încât un obiect să opereze pe propriile date. Când vine vorba de nomenclatură, procedura, modulul, apelul de procedură și variabila din Programarea procedurală sunt adesea denumite metodă, obiect, mesaj și, respectiv, atribut în POO.