Nella programmazione orientata ad oggetti (OOP) vengono utilizzati oggetti che interagiscono
tra di loro a diversi livelli di complessità. Un oggetto viene definito come un elemento modulo contenente dati
e operazioni, che è capace, come abbiamo detto precedentemente, di comunicare e interfacciarsi con altri oggetti.
I dati vengono chiamati attributi (proprietà) mentre le azioni vengono chiamati metodi (operazioni). La OOP la rappresentiamo mediante l'uso dei diagrammi UML. L'uso dei diagrammi grafici UML mette a disposizione
molteplici livelli di dettaglio per rappresentare classi (Implementazione di un ADT) e oggetti. Essi possono essere pubblici, privata o protetti.
La programmazione OOP è caratterizzata principalmente da questi fattori:
Information Hiding: Principio fondamentale mediante il quale vengono preservati (nascosti) i dati sensibili all'utente,
in modo tale che l'utente stesso non alteri o ostacoli il normale funzionamento del programma.
Incapsulamento: Principio che agisce da "separatore" tra l'interfaccia pubblica, che è resa visibile all'utente e l'implentazione interna all'oggetto, che è nascosta.
Ereditarietà: Meccanismo che permette la creazione di nuove classi (classi derivate o sottoclassi) a partire
dalle classi preesitenti (classi base o super classi), ereditandone le caratteristiche (attributi e/o metodi) , aggiungendone di nuove o ridefinendone o mascherandone altre.
Polimorfismo: E' un concetto strettamente collegato alle dinamiche all'ereditarietà tra classi; permette di ottenere
comportamenti e risultati diversi invocando gli stessi metodi a carico di oggetti diversi.
Nella programmazione procedurale tradizionale i dati e le operazioni non sono contenuti all'interno degli oggetti,
ma sono "separati". I dati e le funzioni vengono rappresentati graficamente tramite diagrammi di flusso.
Essi consentono di descrivere in modo schematico:
- Le operazioni da compiere, rappresentate mediante sagome convenzionali (come rettangoli, rombi, esagoni, parallelogrammi, rettangoli smussati...) all'interno delle quali un'indicazione testuale descrive l'attività da svolgere
- La sequenza nella quale devono essere compiute, rappresentate con frecce di collegamento.
Essi sono costituito da comandi decisionali, ciclici e composti.
I comandi decisionali possono essere: If, switch, if-else ecc...
I comandi ciclici possono essere: for, do,while ecc...
I comandi composti sono costituiti da dei blocchi contenenti dichiarazioni e istruzioni, in modo che, dal punto di vista
sintattico, esse formino un'entità equivalente ad una sola istruzione.