Estratto del documento

La superclassa universale Object

Sappiamo già che ogni classe di Java è (in maniera diretta o indiretta) sottoclasse di Object. Quindi ogni classe di Java eredita tutti i metodi della classe Object. Alcuni dei più utili metodi di Object sono i seguenti: sovrascriverli. Ma perché siano davvero utili, nella maggior parte dei casi bisogna sovrascrivere i metodi toString e equals.

toString

Sovrascrivere public String toString()

Il metodo della classe Object ha la firma: il metodo println di qualsiasi tipo è in grado di ricevere come parametro un oggetto perché invocato String dell’oggetto, e l’invocazione è possibile perché tutte le classi hanno il metodo toString, eventualmente ereditato da Object. L’invocazione di questo metodo per qualsiasi oggetto ne restituisce la descrizione testuale standard: il nome della classe seguito dal carattere @ e dallo hashcode dell’oggetto (un numero univocamente determinato dall’indirizzo in memoria dell’oggetto stesso).

In generale la descrizione testuale standard non è particolarmente utile, è più utile ottenere una stringa di testo contenente informazioni sullo stato dell’oggetto in esame. toString dovrebbe sempre produrre una stringa contenente tutte le informazioni di stato dell’oggetto:

  • Il valore di tutte le sue variabili di esemplare
  • Il valore di variabili statiche non costanti della classe

Secondo lo stile adottato nella libreria standard, crea una stringa contenente il nome della classe seguito dai valori dei campi di esemplare racchiusi fra parentesi quadre.

Sovrascrivere toString anche per le sottoclassi

Per vedere stampato il nome di classe corretto si può usare il metodo getClass, che restituisce un oggetto di tipo classe e poi invocare il metodo getName sull’oggetto di tipo classe, per ottenere il nome della classe, così verrà visualizzato il nome corretto della classe anche quando viene invocato su un oggetto di una sottoclasse. Se si vogliono visualizzare i valori dei campi di esemplare di una sottoclasse bisogna invocare super.toString per ottenere i valori dei campi della superclasse.

equals

Sovrascrivere public boolean equals(Object otherObject)

Il metodo della classe Object ha la firma: l’invocazione di questo metodo restituisce true se gli hashcode dell’oggetto this e dell'oggetto otherObject sono uguali. Però è più utile ottenere un'informazione booleana che dica se gli stati degli oggetti in esame coincidono, ovvero restituire true se e solo se i valori di tutte le variabili di esemplare dei due oggetti.

Anteprima
Vedrai una selezione di 1 pagina su 1
Informatica I - sovrascrivere i metodi to String e equals in java Pag. 1
1 su 1
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher enricopava di informazioni apprese con la frequenza delle lezioni di Informatica 1 e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Padova o del prof Avanzini Federico.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community