Programmazione orientata agli oggetti vs programmazione procedurale
La programmazione orientata agli oggetti (OOP) e la programmazione procedurale sono due paradigmi di programmazione. Un paradigma di programmazione è uno stile fondamentale di programmazione per computer e differiscono nel modo in cui vengono rappresentati i diversi elementi del programma e nel modo in cui vengono definiti i passaggi per la risoluzione dei problemi. Come suggerisce il nome, OOP si concentra sulla rappresentazione dei problemi utilizzando oggetti del mondo reale e il loro comportamento, mentre la programmazione procedurale si occupa di rappresentare soluzioni ai problemi utilizzando procedure, che sono raccolte di codice che vengono eseguite in un ordine specifico. Esistono linguaggi di programmazione che supportano aspetti chiave di OOP (chiamati linguaggi OOP), procedurale (chiamati linguaggi procedurali) ed entrambi. Ma una cosa importante da notare è che OOP e Procedural sono due modi per rappresentare i problemi da risolvere e non importa quale lingua viene utilizzata. In altre parole,I linguaggi OOP possono essere utilizzati per la programmazione procedurale mentre i linguaggi procedurali possono talvolta essere utilizzati per OOP, con un certo sforzo.
La programmazione procedurale è un modo di programmare identificando l'insieme di passaggi per risolvere un determinato problema e l'ordine esatto in cui dovrebbero essere eseguiti per raggiungere il risultato o lo stato desiderato. Ad esempio, se si desidera calcolare il saldo di chiusura di fine mese per un conto bancario, i passaggi richiesti saranno i seguenti. Per prima cosa acquisisci il saldo iniziale del conto e poi riduci tutti gli importi di addebito avvenuti durante il mese. Successivamente, aggiungi tutti gli importi del credito verificatisi durante il mese. Alla fine del processo, otterrai il saldo di chiusura di fine mese del conto. Uno dei concetti principali della programmazione procedurale è la chiamata di procedura. Una procedura nota anche come subroutine, metodo o funzione contiene un elenco ordinato di istruzioni da eseguire. Una procedura può essere chiamata in qualsiasi momento durante l'esecuzione da qualsiasi altra procedura o da sola. Esempi di linguaggi di programmazione procedurali sono C e Pascal.
In OOP, l'obiettivo è pensare al problema da risolvere in termini di elementi del mondo reale e rappresentare il problema in termini di oggetti e del loro comportamento. L'oggetto è una struttura di dati che ricorda da vicino un oggetto del mondo reale. Gli oggetti contengono campi di dati e metodi che rappresentano attributi e comportamento degli oggetti del mondo reale. Esistono diversi importanti concetti OOP come l'astrazione dei dati, l'incapsulamento, il polimorfismo, la messaggistica, la modularità e l'ereditarietà. Alcuni linguaggi OOP popolari sono Java e C #. Tuttavia, possono essere utilizzati anche per eseguire la programmazione procedurale.
La differenza fondamentale tra OOP e Programmazione procedurale è che l'obiettivo della Programmazione procedurale è suddividere l'attività di programmazione in una raccolta di variabili e subroutine mentre, l'obiettivo di OOP è suddividere l'attività di programmazione in oggetti, che incapsulano i dati e metodi. La differenza più notevole potrebbe essere che mentre la Programmazione procedurale utilizza procedure per operare direttamente sulle strutture di dati, OOP raggrupperà i dati ei metodi insieme in modo che un oggetto operi sui propri dati. Quando si parla di nomenclatura, procedura, modulo, chiamata di procedura e variabile nella programmazione procedurale sono spesso indicati rispettivamente come metodo, oggetto, messaggio e attributo in OOP.