Рубрики

Переопределение toString () в Java

Этот пост похож на метод Overriding equals в Java . Рассмотрим следующую Java-программу:

// имя файла: Main.java

  

class Complex {

    private double re, im;         

  

    public Complex(double re, double im) {

        this.re = re;

        this.im = im;

    }

}

   
// Класс драйвера для тестирования класса Complex

public class Main {

    public static void main(String[] args) {

        Complex c1 = new Complex(10, 15);

        System.out.println(c1);

    }

}

Выход:

Complex@19821f

Вывод: имя класса, затем знак «at» и, наконец, hashCode объекта . Все классы в Java наследуются от класса Object прямо или косвенно (см. Пункт 1 этого ). Класс Object имеет несколько основных методов, таких как clone (), toString (), equals () и т. Д. Метод toString () по умолчанию в Object выводит «имя класса @ хэш-код». Мы можем переопределить метод toString () в нашем классе для вывода правильного вывода. Например, в следующем коде toString () переопределяется для печати формы «Real + i Imag».

// имя файла: Main.java

  

class Complex {  

    private double re, im;

  

    public Complex(double re, double im) {

        this.re = re;

        this.im = im;

    }

      

    / * Возвращает строковое представление этого комплексного числа.

       Формат строки: «Re + iIm», где Re - реальная часть

       и я - образная часть. * /

    @Override

    public String toString() {

        return String.format(re + " + i" + im);

    }

}

  
// Класс драйвера для тестирования класса Complex

public class Main {

    public static void main(String[] args) {

        Complex c1 = new Complex(10, 15);

        System.out.println(c1);

    }

}

Выход:

10.0 + i15.0

В общем, это хорошая идея переопределить toString (), так как мы получаем правильный вывод, когда объект используется в print () или println ().

Ссылки:
Эффективная Java от Джошуа Блоха

Пожалуйста, пишите комментарии, если вы обнаружите что-то неправильное или вы хотите поделиться дополнительной информацией по обсуждаемой выше теме.

Рекомендуемые посты:

Переопределение toString () в Java

0.00 (0%) 0 votes