Programmazione orientata agli oggetti: Classi, Attributi e Metodi

Programmazione orientata agli oggetti: Classi, Attributi e Metodi

Nella programmazione orientata agli oggetti, i metodi definiscono il comportamento degli oggetti di una certa classe. La programmazione orientata agli oggetti distingue nettamente la nozione di cosa va fatto da quella di come lo si fa. Il cosa è descritto sottoforma di insieme di metodi e dalla relativa semantica. E’ la combinazione di metodi, dati e semantica che permette all’utilizzatore di sapere cosa accade quando i metodi specificati vengono invocati su di un oggetto.

La dichiarazione di un metodo è composta da due parti: l’intestazione del metodo (signature) e il corpo del metodo (body). L’intestazione del metodo è costituita dal nome del metodo e dalla lista (anche vuota) dei tipi di parametri, sia di input che di output. Il corpo del metodo è costituito invece dalle istruzioni.

Due metodi possono avere lo stesso nome, lo stesso insieme di parametri e sollevare le stesse eccezioni, ma non possono essere ritenuti equivalenti se dotati di semantica differente.

Il come effettuare qualcosa per un oggetto è definito dalla sua classe di appartenenza, la quale fornisce le implementazioni dei metodi che l’oggetto supporta.

Programmazione orientata agli oggetti: Classi, Attributi e Metodi

L’idea che tutti gli oggetti, anche se unici, possono essere raggruppati in classi in quanto possessori di caratteristiche e comportamenti comuni, fu sviluppato nel primo linguaggio object-oriented Simula -67, che introdusse appunto il termine classe nei programmi. Oggetti identici appartengono a “classi di oggetti”, dove l’identità non coinvolge lo stato dell’oggetto. Ogni oggetto ha una classe che ne definisce i dati e il comportamento.

La classe è particolare tipo di dato che descrive un insieme di oggetti con caratteristiche e comportamenti identici ed è composta da questi tre elementi:

  • gli attributi, variabili che contengono i dati associati alla classe e ai suoi oggetti, con lo scopo di memorizzare i risultati dei calcoli effettuati all’interno della classe;
  • i metodi, che contengono il codice eseguibile della classe e sono costituiti da istruzioni (il modo in cui vengono invocati, e quindi il modo in cui le istruzioni al loro interno vengono eseguite, è quello che dirige l’esecuzione del programma);
  • la classe e le interfacce, che possono essere a loro volta membri di altre classi o interfacce.

I membri di una classe possono avere diversi livelli di visibilità o accessibilità: possono essere definiti attributi che possono essere letti e modificati; oppure è possibile limitare l’accesso dei membri a porzioni di codice della classe stessa o di altre classi correlate.

Ogni oggetto è una istanza di una classe. Quando viene invocato un metodo su un oggetto, si esamina la classe a cui esso appartiene per cercare il codice da eseguire.

Un attributo può essere inizializzato al momento della sua dichiarazione, assegnandogli un valore del tipo corrispondente; tale valore può essere semplice (costante), oppure costituito da un altro attributo, o da un’invocazione di metodo o da una espressione che comprenda entrambi. L’unica necessità è che l’inizializzatore restituisca lo stesso tipo di attributo; nel caso in cui non avvenga alcuna inizializzazione, il valore di default iniziale assegnato all’attributo dipende dal tipo.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *