Якщо ви хочете представити будь-який об’єкт у вигляді рядка, метод toString(). виникає.
Метод toString() повертає рядкове представлення об’єкта.
Якщо ви друкуєте будь-який об’єкт, компілятор Java внутрішньо викликає метод toString() для цього об’єкта. Таким чином, заміна методу toString() повертає потрібний результат, це може бути стан об’єкта тощо залежно від вашої реалізації.
Перевага методу Java toString().
Перевизначаючи метод toString() класу Object, ми можемо повертати значення об’єкта, тому нам не потрібно писати багато коду.
Розуміння проблеми без методу toString().
Давайте подивимося на простий код, який друкує посилання.
Student.java
class Student{ int rollno; String name; String city; Student(int rollno, String name, String city){ this.rollno=rollno; this.name=name; this.city=city; } public static void main(String args[]){ Student s1=new Student(101,'Raj','lucknow'); Student s2=new Student(102,'Vijay','ghaziabad'); System.out.println(s1);//compiler writes here s1.toString() System.out.println(s2);//compiler writes here s2.toString() } }
Вихід:
Student@1fee6fc Student@1eed786
Як ви можете бачити в наведеному вище прикладі, друк s1 і s2 друкує значення хеш-коду об’єктів, але я хочу надрукувати значення цих об’єктів. Оскільки компілятор Java внутрішньо викликає метод toString(), перевизначення цього методу поверне вказані значення. Давайте зрозуміємо це на прикладі, наведеному нижче:
Приклад методу Java toString().
Давайте розглянемо приклад методу toString().
Student.java
class Student{ int rollno; String name; String city; Student(int rollno, String name, String city){ this.rollno=rollno; this.name=name; this.city=city; } public String toString(){//overriding the toString() method return rollno+' '+name+' '+city; } public static void main(String args[]){ Student s1=new Student(101,'Raj','lucknow'); Student s2=new Student(102,'Vijay','ghaziabad'); System.out.println(s1);//compiler writes here s1.toString() System.out.println(s2);//compiler writes here s2.toString() } }
Вихід:
101 Raj lucknow 102 Vijay ghaziabad
У наведеній вище програмі внутрішні виклики компілятора Java toString() метод, перевизначення цього методу поверне вказані значення s1 і s2 об'єкти класу Студент.