Classe Object in Java
- La classe
Object
è la superclasse di tutte le altre classi in Java. - Ogni oggetto in Java è un'istanza di
Object
, che fornisce metodi fondamentali comeequals()
,toString()
, egetClass()
. - I metodi
equals()
etoString()
possono essere sovrascritti per fornire comportamenti specifici per le classi derivate.
La Classe Object
Esiste una classe speciale, Object
, definita da Java.
Tutte le altre classi sono (in modo implicito) sottoclassi di Object
. Cioè, Object
è una superclasse di tutte le altre classi.
Questo significa che una variabile di riferimento di tipo Object
può riferirsi a un oggetto di qualsiasi altra classe. Inoltre, poiché anche gli array sono implementati come classi, una variabile di tipo Object
può anche riferirsi a un array.
Object
definisce i seguenti metodi, il che significa che sono disponibili in ogni oggetto.
Metodo | Scopo |
---|---|
Object clone() |
Crea un nuovo oggetto identico all'oggetto clonato. |
boolean equals(Object object) |
Determina se un oggetto è uguale a un altro. |
void finalize() |
Chiamato prima che un oggetto non più utilizzato venga riciclato. (Deprecato a partire da JDK 9.) |
Class<?> getClass() |
Ottiene la classe di un oggetto durante l'esecuzione. |
int hashCode() |
Restituisce il codice hash associato all'oggetto invocante. |
void notify() |
Riprende l'esecuzione di un thread in attesa sull'oggetto invocante. |
void notifyAll() |
Riprende l'esecuzione di tutti i thread in attesa sull'oggetto invocante. |
String toString() |
Restituisce una stringa che descrive l'oggetto. |
void wait() |
Attende un altro thread di esecuzione. |
I metodi getClass()
, notify()
, notifyAll()
e wati()
sono dichiarati come final
. Non è possibile sovrascriverli. Questi metodi sono descritti nelle prossime lezioni. Tuttavia, si noti ora due metodi: equals()
e toString()
.
Il metodo equals()
confronta due oggetti. Restituisce true
se gli oggetti sono uguali, e false
altrimenti. La definizione precisa di uguaglianza può variare, a seconda del tipo di oggetti confrontati.
Il metodo toString()
restituisce una stringa che contiene una descrizione dell'oggetto su cui viene chiamato. Inoltre, questo metodo viene automaticamente chiamato quando un oggetto viene stampato usando println()
. Molte classi sovrascrivono questo metodo. Farlo consente loro di adattare una descrizione specificamente per i tipi di oggetti che creano.
Dettaglio sulla sintassi del tipo restituito
Si noti un ultimo punto: notare la sintassi insolita nel tipo restituito per getClass()
. Questa sintassi riguarda un argomento, i cosiddetti generics di Java, che affronteremo nelle prossime lezioni.