Alcuni concetti base di programmazione ad oggetti
29 maggio 2007 , di Boliboop
Un po’ per prendere appunti, un po’ perché spero che possa essere utile a qualcun altro, pubblico una serie di definizioni che possono essere utili per chi si approccia, come me, per la prima volta alla programmazione ad oggetti. Beh, veramente lo facevo già una decina di anni fa, quando programmavo in Visual Basic, ma siccome non me ne rendevo conto… ora mi sono messo a studiare un po’ di teoria!
Come vedremo, il problema di definire gli elementi logici della programmazione ad oggetto è che spesso queste definizioni racchiudono riferimenti circolari che rendono il tutto (per fortuna solo apparentemente) un po’ tautologico. Per spiegare i concetti astratti tipici della programmazione ad oggetti, scriverò, sotto ogni definizione, un esempio ispirandomi alla mela che ho ora accanto al computer.
Innanzitutto definiamo un oggetto (object):
L’oggetto è una istanza di una classe.
La mela (oggetto) che ho qui sul tavolo è una (istanza) delle tante mele (classe) che possono esistere.
Anche se non avete capito, memorizzatelo e andiamo avanti, le prossime definizioni vi chiariranno le idee. La definizione di oggetto racchiude due nuove parole, istanza e classe. Vediamo cosa è una classe (class):
La classe è una categoria di oggetti.
Le mele (classe) costituiscono una categoria di prodotti ortofrutticoli (oggetti).
Questo è già più chiaro. Ma veniamo alla definizione di istanza (instance):
L’istanza è l’oggetto considerato rispetto alla classe di appartenenza.
Questa particolare mela che ho sul tavolo (istanza) è un esempio di mela (oggetto) della categoria di prodotti ortofrutticoli chiamati mela (classe).
Ecco invece cosa si intende per variabile d’istanza (instance variables)
Una variabile d’istanza è una variabile associata all’istanza di una classe.
il numero di semi (variabile d’istanza) nella mela è associato alla particolare mela (istanza) che è qui sul tavolo
Infine, cosa sono i metodi? Ecco la definizione:
Un metodo è l’azione che può essere eseguita da (o su) un oggetto.
La mela (oggetto) può marcire (metodo) o essere sbucciata (altro metodo).
Considerazioni finali
In conclusione vorrei sottolineare come l’uso che viene fatto dell’astrazione del concetto di oggetto (e di tutti gli altri concetti che compongono la struttura della programmazione ad oggetti) sia, a mio modo di vedere, molto simile all’astrazione che si incontra in meccanica quantistica. In entrambi i campi di costruisce una teoria fatta di strumenti logici astratti, molti dei quali non hanno nemmeno una interpretazione fisica (o informatica) chiara e definita, ma che vengono egregiamente usati nella realtà delle cose quando l’astrazione viene riportata nell’applicazione pratica. Un percorso dal concreto all’astratto e di nuovo al concreto che possiede un indubbio fascino.
Fonti e approfondimenti:

Pianeta Apple
Antonio ha detto
Affascinante… la programmazione ad oggetti è quella particolare branca della programmazione le cui definizioni sono facilmente dimenticabili.
mag 29 2007 alle 17:48
Boliboop ha detto
Bene! Allora questo promemoria è davvero utile
mag 29 2007 alle 17:56
sacha ha detto
Utilissimo…stampo e metto da parte. Devo integrare informatica all’università, tornerà comodo
mag 29 2007 alle 18:08
Boliboop ha detto
@sacha: ottimo, fammi sapere come va
mag 29 2007 alle 18:21