Objektorienterad programmering kontra procedurprogrammering
Objektorienterad programmering (OOP) och procedurprogrammering är två programmeringsparadigm. Ett programmeringsparadigm är en grundläggande stil inom datorprogrammering, och de skiljer sig åt i hur olika delar av programmet representeras och hur steg för att lösa problem definieras. Som namnet antyder fokuserar OOP på att representera problem som använder verkliga objekt och deras beteende medan Procedural Programming handlar om att representera lösningar på problem med hjälp av procedurer, som är samlingar av kod som körs i en specifik ordning. Det finns programmeringsspråk som stöder nyckelaspekter av OOP (kallas OOP-språk), Procedural (kallas Procedural languages) och båda. Men en viktig sak att notera är att OOP och Procedural är två sätt att representera problem som ska lösas, och det spelar ingen roll vilket språk som används. Med andra ord kan OOP-språk användas för procedurprogrammering medan procedurspråk ibland kan användas för OOP, med viss ansträngning.
Procedurprogrammering är ett sätt att programmera genom att identifiera uppsättningen steg för att lösa ett visst problem och den exakta ordningen som de ska utföras för att nå önskat resultat eller tillstånd. Om du till exempel vill beräkna det utgående saldot vid månadsskiftet för ett bankkonto, är de nödvändiga stegen som följer. Först skaffar du startsaldot på kontot och sedan minskar du alla debiteringsbelopp som inträffat under månaden. Därefter lägger du till alla kreditbelopp som inträffat under månaden. I slutet av processen får du kontots sista månadssaldo. Ett av huvudkoncepten för procedurprogrammering är proceduranropet. En procedur även känd som en subrutin, metod eller en funktion innehåller en ordnad lista med instruktioner som ska utföras. Ett förfarande kan påkallas när som helst under verkställandet av något annat förfarande eller av sig självt. Exempel på procedurprogrammeringsspråk är C och Pascal.
I OOP ligger fokus på att tänka på problemet som ska lösas i termer av verkliga element och att representera problemet i termer av objekt och deras beteende. Objekt är en datastruktur som liknar något verkligt objekt. Objekt innehåller datafält och metoder som representerar attribut och beteende hos verkliga objekt. Det finns flera viktiga OOP-koncept som Dataabstraktion, Encapsulation, Polymorphism, Messaging, Modularity och Inheritance. Några populära OOP-språk är Java och C. Men de kan också användas för att utföra procedurprogrammering.
Nyckelskillnaden mellan OOP och Procedural Programmering är att fokus för Procedural Programmering är att bryta ned programmeringsuppgiften i en samling variabler och subrutiner medan fokus för OOP är att bryta ner programmeringsuppgiften i objekt, som kapslar in data och metoder. Den mest anmärkningsvärda skillnaden kan vara att medan procedurprogrammering använder procedurer för att direkt arbeta på datastrukturer, kommer OOP att bunta ihop data och metoder så att ett objekt kommer att arbeta på sina egna data. När det kommer till nomenklaturen kallas procedure, modul, proceduranrop och variabel i Procedural Programmering ofta som metod, objekt, meddelande respektive attribut i OOP.