La classe in Java
Cosa sono le classi
Nel linguaggio Java una classe è un insieme composto da attributi e metodi.
La differenza tra attributi e metodi
- Attributi
Gli attributi sono le variabili della classe. Definiscono le proprietà della classe. Ad esempio, l'attributo anno è una variabile a cui assegno un valore (es. anno=2020). - Metodi
I metodi sono le funzioni della classe. Definiscono il comportamento della classe. Ad esempio, il metodo somma calcola l'addizione tra due numeri passati come argomento.
A cosa servono le classi
Sono il fondamento della programmazione orientata agli oggetti (OOP).
Tramite la classe posso creare degli oggetti che ereditano automaticamente gli attributi e i metodi della classe.
Esempio
La classe anagrafica è composta dagli attributi nome e cognome.
Uso la classe anagrafica per creare due oggetti: Andrea e Gaia.
Gli oggetti Andrea e Gaia ereditano automaticamente gli attributi nome e cognome.
In questo modo non devo definirli manualmente per ogni oggetto.
Posso richiamare gli attributi di un oggetto scrivendo:
Andrea.nome
Andrea.cognome
Gaia.nome
Gaia.cognome
In questo esempio ho usato degli attributi. Con i metodi è lo stesso.
La differenza tra classi e oggetti
La differenza tra una classe e un oggetto è la stessa che c'è tra un insieme e un elemento dell'insieme.
La classe è un insieme che contiene gli oggetti (elementi).
Tutti gli oggetti hanno in comune le proprietà dell'insieme.
Esempio
La classe animali è un insieme caratterizzato da attributi (specie, genere, ecc.) e metodi (verso, ecc.).
Gli oggetti sono gli elementi che appartengono all'insieme degli animali.
Ad esempio, il cane e il gatto sono due oggetti della classe animali.
Sia il cane che il gatto hanno gli attributi specie e genere anche se con valori diversi.
Gatto.genere=Felis
Gatto.specie=silvestris
Cane.genere=Canis
Cane.specie=lupus
Hanno anche il metodo verso
Nel caso del gatto sarà un suono del tipo "miao", nel caso del cane "bau".
Gatto.verso()
Cane.verso()
Le superclassi
Una classe può anche ereditare i metodi e attributi da un'altra classe madre, detta superclasse.
La classe figlia è invece detta sottoclasse.
Gli oggetti creati con la sottoclasse ereditano anche i metodi e gli attributi della superclasse, oltre a quelli della classe in questione.
Esempio
In questo esempio creo un oggetto (Andrea) con la classe studenti.
La classe studenti è una sottoclasse della classe anagrafica.
Pertanto, l'oggetto Andrea eredita sia gli attributi/metodi della classe studenti, sia quelli della superclasse anagrafica.
E così via.