MyLeoNes™

Oggetti e classi — Informatica, 14–17 anni

La programmazione a oggetti unisce i dati alle operazioni che li riguardano. L’idea non è soltanto chiamare le cose oggetti, ma organizzare il software attorno a responsabilità e messaggi.

Una classe è un piano; un oggetto è una cosa

Una classe descrive ciò che un certo tipo di cosa conosce e sa fare. Un oggetto è una cosa concreta creata da quella descrizione, con i propri valori. Una classe Bicicletta può descrivere colore, velocità e frena(); bici1 e bici2 possono avere colori e velocità diversi, condividendo lo stesso modello.

Perché unire dati e azioni?

Il problema nasce quando ogni parte di un programma grande può modificare tutti i dati. Una modifica può allora rompere molti punti non collegati e non è chiaro chi sia responsabile. Gli oggetti assegnano a ogni parte un compito chiaro e un modo controllato di interagire. L’idea si è sviluppata per gestire software sempre più grandi e mutevoli.

Un piccolo conto bancario

Creiamo un oggetto Conto con saldo = 100. Chiamare versa(25) porta il saldo a 125; chiamare preleva(40) lo porta a 85. Se viene richiesto preleva(100), l’oggetto può rifiutare, perché la sua regola vieta un saldo negativo. Il conto protegge i dati offrendo azioni utili.

Non ogni nome ha bisogno di una classe

È facile trasformare ogni nome di una descrizione in una classe: Cliente, Indirizzo, Pulsante, Colore e così via. Sembra sensato perché le classi assomigliano alle cose nominate nel linguaggio comune. Ma una classe è utile solo se deve gestire dati, comportamento o identità significativi. Troppe classi minuscole possono nascondere un’idea semplice.

Oggetti nel software reale

In un’app mobile, gli oggetti possono rappresentare un utente, un messaggio e un lettore musicale. Ognuno gestisce i propri dettagli e collabora tramite operazioni chiare, rendendo più sicure le modifiche: aggiungere uno stile di messaggio non dovrebbe cambiare la sicurezza dell’account. È utile quando interagiscono molti tipi di cose, ma non è la forma migliore per ogni programma.

Continua a esplorare

Altre lingue

Caricamento di MyLeoNes™…