La programmazione orientata agli oggetti (
OOP, Object Oriented Programming) è uno stile fondamentale di programmazione, che prevede di raggruppare in un'unica entità, detta classe, sia le strutture dati che le procedure che operano su di esse, creando per l'appunto un oggetto.
Come nel mondo reale la realizzazione di un oggetto avviene in più fasi, lo stesso è nella programmazione ad oggetti.
Fase di costruzione di un oggetto:ProgettoNel mondo della programmazione ad oggetti (OOP) il progetto altro non è che la classe, cioè un’entità logica, non occupa spazio in memoria, che definisce variabili, funzioni e altri oggetti che possono essere pubblici, privati o protetti.
CostruttoriLa vita di un oggetto classe ha inizio nel momento in cui viene creato, ossia viene allocato spazio nella memoria per contenere i dati dell’oggetto.
A questo punto sorge spontaneo la domanda:
“Ma da chi viene creato?”
“Dal costruttore.”Il costruttore è una funzione il cui nome è il nome della classe: il costruttore viene chiamato automaticamente quando viene creato un oggetto appartenente alla stessa classe.
Sintassi:nome_classe ( );
Oggetto“L’oggetto è un’istanza della classe”.
L’oggetto è un’entità fisica, che occupa spazio in memoria, realizzata dalla classe (progetto) che combina elementi dati, funzioni e altri oggetti.
Questi elementi, detti anche modificatori, possono essere pubblici, privati e protetti.
Gli elementi pubblici costituiscono l’interfaccia cioè l’insieme delle variabili e funzioni a nostra disposizione per interagire con l’oggetto.
Gli elementi privati costituiscono tutta quella parte di codice a cui noi non abbiamo accesso perché il loro stato garantisce il corretto funzionamento dell’oggetto, “una sorta di protezione per impedire all’utente di combinare danni”.
DistruttoreIl distruttore è l’opposto del costruttore cioè quando termina il tempo di vita di un oggetto questo viene eliminato dal distruttore, per liberare la memoria occupata dai campi dati dell’oggetto.
Il distruttore è anch’essa una funzione che ha lo stesso nome della classe ma è preceduto dal simbolo ‘~’ (tilde).
Sintassi:~ nome_classe ( );
Come si dichiara un oggetto in C++:class tipo {
public:
tipo var1;
tipo var2;
tipo var3;
funzione membro 1;
funzione membro 2;
protected:
tipo var4;
tipo var5;
tipo var6;
funzione membro 3;
funzione membro 4;
private:
tipo var7;
tipo var8;
tipo var9;
funzione membro 5;
funzione membro 6;
} oggetto;
Esempio pratico:class Rettangolo {
public:
//attributi
float base , altezza;
//metodi
float Area ( ) {
return base*altezza;
}; // Fine Area
} Figura1; // Fine classe
In questo esempio la classe Rettangolo si compone di due attributi di tipo reale e di un metodo che restituisce un numero reale ottenuto moltiplicando i due attributi.
figura1.base = 12 ;
figura1.altezza = 8 ;
cout << “L’area del rettangolo è “ <<figura1.Area ( ) << endl ;
Con questo esempio potete notare che è l’oggetto ad essere utilizzato tramite l’annotazione puntata e non il progetto. Quindi il progetto è un modello,un idea, un prototipo che ci serve per la dichiarazione degli attributi e dei metodi. Mentre l’oggetto, che è fisico, reale, ha un corpo, è colui che andremo ad utilizzare per svolgere determinate azioni.