PROGRAMMIAMO
C++ - Classi e oggetti
Programmazione ad oggetti e programmazione "tradizionale"

La programmazione ad oggetti (o orientata agli oggetti, come si dice più precisamente) è un metodo o, se si preferisce, una filosofia di scrittura e organizzazione di un programma. In questo senso essa si contrappone alla programmazione tradizionale, detta anche procedurale.

La differenza è che nella programmazione procedurale si ragione in termini di sottoprogrammi (main e funzioni) e di dati, considerati come entità separate. I sottoprogrammi operano sui dati che vengono loro passati, ma non esiste nessun legame diretto fra una certa funzione e una certa struttura dati.

Viceversa la programmazione ad oggetti si basa appunto sul concetto di oggetto. Un oggetto, in C++, non è altro che l'istanza (cioè la dichiarazione) relativa a una data classe. Per esempio:

class orario {
private:
  int ora;
  int min;
public:
  void acquisisci();
  void visualizza();
  int minuti();
};

int main(int argc, char *argv[])
{
orario ora1, ora2; 

Nel codice precedente, ora1 e ora2 sono due oggetti. Gli oggetti comprendono al proprio interno sia i dati (attributi) che le funzioni (metodi) per manipolarli.

E' facile confondere il concetto di classe e quello di oggetto, ma in realtà non sono la stessa cosa. La classe è il modello, lo "stampo" generale in base al quale vengono "creati" gli oggetti. Per esempio orario è la classe con cui vengono creati i due oggetti ora1 e ora2.

Differenza fra classe e oggetto

La figura seguente mostra in modo grafico la differenza fra i due tipi di programmazione:

programmazione ad oggetti vs. programmazione procedurale

Una delle prime cose che risulta abbastanza evidente dalla figura qui sopra, è la maggiore chiarezza e linearità del codice ad oggetti rispetto a quello procedurale. Si osservi ad esempio come nella programmazione procedurale i dati possono essere condivisi fra funzioni diversi e dallo stesso main senza nessuna regola o limitazione.

Non tutti i linguaggi di programmazione sono adatti alla programmazione ad oggetti. Per esempio il linguaggio C++ contiene le classi, a differenza del C, e dunque è particolarmente adatto a questo scopo.

 

link precedente - successiva

Sito realizzato in base al template offerto da

http://www.graphixmania.it