Cos'è una classe?

Articolo approfondimento del di

Programmazione: Definizione di Classe

Attenzione: Questo articolo è adatto a chi ha conoscenze almeno base di programmazione.

La classe è un tipo di dato astratto contenente parametri (caratteristiche dell'oggetto) e metodi (azioni che può compiere l'oggetto).

Un oggetto è istanziato tramite una classe ed i suoi parametri possono essere assegnati durante la sua creazione o successivamente.

A parole il concetto sembra complicato, ma in realtà è molto semplice.

Se vogliamo creare un oggetto "macchina", creeremo una classe di nome macchina che avrà i seguenti parametri:

  • Nome
  • Colore
  • Modello
  • Passeggeri a bordo
  • Contachilometri

ed i seguenti metodi (azioni che può compiere)

  • Scende passeggero()
  • Sale passeggero()
  • Cammina()

Una volta creata questa classe, potremo istanziare l'oggetto "macchina" che sarà definito tramite i parametri precedentemente creati:

  • Nome: Alfa Romeo
  • Colore: Nero
  • Modello: 147
  • Passeggeri a bordo: 0
  • Contachilometri: 0

In questo modo abbiamo creato un oggetto di tipo  "macchina" avente delle caratteristiche ben specifiche, questo oggetto è unico ed anche se ne viene creato uno uguale, saranno entrambi considerati (dal programma) come due oggetti diversi, ma con le medesime caratteristiche.

Abbiamo impostato che l'oggetto macchina può svolgere alcune azioni: quindi se viene richiamato il metodo "Sale passeggero()", le caratteristiche del nostro oggetto cambieranno.

I metodi (azioni che compie l'oggetto) devono essere prima settati, impostiamo quindi che:

  • quando viene richiamato il metodo "Scende passeggero()", il parametro "Passeggeri a bordo" diminuisca di 1,
  • il metodo "Sale passeggero()" faccia aumentare il numero di passeggeri ad 1
  • ed il metodo "Cammina()" aumenti il contachilometri di 1.

Impostiamo anche che "Scende passeggero()" può essere utilizzato solo quando "Passeggeri a bordo" sia maggiore di 1, mentre "Sale passeggero()" solo quando "Passeggeri a bordo" sia minore di 5.

Ora creiamo un secondo oggetto "macchina", assegniamo come nome macchinauno (nome dell'oggetto) e settiamo tutti gli altri parametri

  • Nome: Opel
  • Colore: Bianco
  • Modello Astra
  • passeggeri a bordo: 3
  • contachilometri: 50

Il nome dell'oggetto, differisce dal parametro nome, quando creiamo un oggetto va scritto il nome dell''oggetto stesso come nell'esempio precedente.

La dicitura "classe macchina macchinauno", sta ad indicare che si è creato un oggetto di tipo macchina  dal nome "macchinauno".  L'oggetto si chiamerà quindi macchinauno, ma il parametro nome sarà "Opel"; scrivendo quindi macchinauno.scendepasseggero(), il numero di passeggeri passerà da 3 a 2. (il metodo di scrittura del codice cambia da linguaggio di programmazione a linguaggio, ma concettualmente la stesura è la stessa).

Le classi sono dei tipi di dato come lo sono "Int, Char, Float, ecc...", concettualmente una classe creata da noi ed "Int", sono la stessa cosa, la differenza principale sta che ogni linguaggio di programmazione, nelle sue librerie, ha preregistrato questo tipo di dato.

Ricapitolando, una classe è un tipo di dato, avente dei parametri e dei metodi. Quando si istanzia un oggetto bisogna indicare a quale classe appartiene.