Salve ragazzi, ho una classe che ha 3 variabili esemplare e devo sovrascrivere il metodo toString.
le tre variabili di esemplare sono una Stringa, un double e un array di stringhe. Il problema è proprio su quest'ultimo di cui esce stampato male.
Mi sapete dire perche non funziona?
Questa è tutta la classe per completezza ve la metto:codice:public String toString() { return getClass().getName() + "[nome="+nome + ", " + "altezza="+altezza + ", " + "cibiPreferiti="+cibiPreferiti.toString() + "]"; }
codice:import java.util.Arrays; public class Persona { private String nome; private double altezza; private String[] cibiPreferiti; public Persona(String nome, double altezza, String[] cibiPreferiti) { this.nome = nome; this.altezza = altezza; this.cibiPreferiti = cibiPreferiti; } public String getNome() { return nome; } public double getAltezza() { return altezza; } public String[] getCibiPreferiti() { return cibiPreferiti; } /* Sovrascrive metodo toString() della superclasse universale Object */ public String toString() { return getClass().getName() + "[nome="+nome + ", " + "altezza="+altezza + ", " + "cibiPreferiti="+cibiPreferiti.toString() + "]"; } /* Sovrascrive il metodo euals() della superclasse universale Object */ public boolean equals(Object otherObject) { if(otherObject == null) return false; if(getClass() != otherObject.getClass()) return false; Persona p = (Persona)otherObject; //cast String[]pCp = p.getCibiPreferiti(); if( nome.equals( p.getNome() ) && altezza == p.getAltezza() ) { for(int i=0 ; i<cibiPreferiti.length ; i++) { if( !( cibiPreferiti[i].equals(pCp[i]) ) ) return false; } return true; } else return false; } /* Sovrascrive metodo clone() della supeclasse Object */ public Object clone() { String n = new String(nome); //copio il campo nome... double a = altezza; //... il campo altezza... String[] cP = Arrays.copyOf(cibiPreferiti, cibiPreferiti.length); //...il campo cibiPreferiti che è un array ed uso, per copiarlo, il metodo appropriato Persona clone = new Persona(n, a, cP); //utilizzo il costruttore di Persona, per creare un clone return clone; } }

Rispondi quotando


