Anulando el método toString() en Java

Java, al estar orientado a objetos, solo trata con clases y objetos, así que si necesitamos algún cálculo, usamos la ayuda de los objetos correspondientes a la clase. Es el método más frecuente de Java utilizado para obtener una representación de string de un objeto. Ahora debe preguntarse que hasta ahora no usaban lo mismo, sino que obtenían una representación de string o, en resumen, una salida en la consola mientras usaban System.out.print. Es porque este método se llamaba automáticamente cuando se escribe la declaración de impresión. Por lo tanto, este método se anula para devolver los valores del objeto que se muestra a continuación a través de ejemplos.

Ejemplo 1:

Java

// file name: Main.java
 
class Complex {
    private double re, im;        
 
    public Complex(double re, double im) {
        this.re = re;
        this.im = im;
    }
}
  
// Driver class to test the Complex class
public class Main {
    public static void main(String[] args) {
        Complex c1 = new Complex(10, 15);
        System.out.println(c1);
    }
}
Producción

Complex@214c265e

Salida Explicación: La salida es el nombre de la clase, luego el signo ‘arroba’ y al final el código hash del objeto . Todas las clases en Java heredan de la clase Object, directa o indirectamente (Ver punto 1 de este ). La clase Object tiene algunos métodos básicos como clone(), toString(), equals(),… etc. El método predeterminado toString() en Object imprime «nombre de clase @ código hash». Podemos anular el método toString() en nuestra clase para imprimir el resultado adecuado. Por ejemplo, en el siguiente código, toString() se anula para imprimir el formulario «Real + i Imag» .

Ejemplo 2:

Java

// Java Program to illustrate Overriding
// toString() Method
 
// Class 1
public class GFG {
     
    // Main driver method
    public static void main(String[] args) {
         
        // Creating object of class1
        // inside main() method
        Complex c1 = new Complex(10, 15);
         
        // Printing the complex number
        System.out.println(c1);
    }
}
// Class 2
// Helper class
class Complex {
     
    // Attributes of a complex number
    private double re, im;
     
    // Constructor to initialize a complex number
    // Default
    // public Complex() {
    //     this.re = 0;
    //     this.im = 0;
    // }
     
    // Constructor 2: Parameterized
    public Complex(double re, double im) {
         
        // This keyword refers to
        // current complex number
        this.re = re;
        this.im = im;
    }
    // Getters
    public double getReal() {
        return this.re;
    }
    public double getImaginary() {
        return this.im ;
    }
    // Setters
    public void setReal(double re) {
        this.re = re;
    }
    public void setImaginary(double im) {
        this.im = im;
    }
    // Overriding toString() method of String class
    @Override
    public String toString() {
        return this.re + " + " + this.im + "i";
    }
}
Producción

10.0 + 15.0i

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente. 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *