2012-01-04 16 views
7

Soy un novato en Java. Diga, tengo una clase Individual. Quiero imprimirImpresión de referencia a un objeto

Individual ind = new Individual(); 
System.out.println(ind); 

Por encima de código da salida como esta:

[email protected] 
  1. ¿Cuál es el significado de esto?
  2. ¿Es algún tipo de ID único para ese objeto?
  3. ¿Puedo personalizar esto? Me refiero a escribir una función de my own que dará salida cuando imprima?
  4. Si es así, ¿cómo puedo hacer esto?
+0

He detallado mi respuesta. Te ayudará más. Gracias – Ahamed

Respuesta

10

Si desea imprimir el contenido significativo de cualquier objeto, tiene que implementar su propio toString() método, que anulará la matriz método toString() (Object) de clase. Por defecto, todas las clases (independientemente de lo que crees) extienden la clase Object.

Código de ejemplo:

public class Individual { 
    private String name; 
    private String city; 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public String getCity() { 
     return city; 
    } 

    public void setCity(String city) { 
     this.city = city; 
    } 

    @Override 
    public String toString() { 
     StringBuilder builder = new StringBuilder(); 
     builder.append("Name of Individual :").append(this.getName()) 
       .append("\nCity :").append(this.getCity()); 
     return builder.toString(); 
    } 
    public static void main(String[] args) { 
     Individual individual = new Individual(); 
     individual.setName("Crucified Soul"); 
     individual.setCity("City of Crucified Soul"); 
     System.out.println(individual); 
    } 
} 

Salida:

Name of Individual :Crucified Soul 
City :City of Crucified Soul 

Si usted tiene la clase más grande con muchas variables, puede utilizar XStream para poner en práctica el método toString(). XStream imprimirá su objeto significativo en formato XML. Incluso puedes analizarlos de vuelta a un objeto equivalente. Espero que esto te ayude.

+0

Sin explicación sobre cómo/por qué '1922221' realmente llegó en primer lugar. – KNU

2

Como no se ha explicado aún, anulando el método toString() simplemente significa que usted crea un método toString() propio en su clase. Al poner su propia versión de toString() en su clase, lo hace para que java use su método toString() en lugar del predeterminado. Debido a que el método toString() original devuelve una cadena, sin embargo, su método toString() también debe devolver una cadena. Su clase individual sería algo como esto:

public class Individual{ 

    //any other code in the class 

    public String toString(){ 
     return "your string"; 
    } 

} 

Entonces, cuando llamó a su System.out.print (ind); imprimirá tu cadena.

Cuestiones relacionadas