Ako želimo predstaviti bilo koji objekt kao string, toString() metod je veoma pogodan.
Metod toString() vraća string reprezentaciju objekta.
Ako ispisujemo neki objekt, Java kompajler interno poziva toString() metod za taj objekt. Tako preklapanje toString() metoda, vraća željeni izlaz, to može biti stanje nekog objekta i sl. zavisno od naše implementacije.
Prednosti Java toString() metoda
Preklapanjem toString() metoda Object klase, možemo vratiti vrijednosti objekta, tako da nije potrebno pisati mnogo koda.
Razumijevanje problema bez toString() metoda
Pogledajmo jednostavan kod koji ispisuje referencu.
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,"Petar","Beograd"); Student s2=new Student(102,"Marko","Banjaluka"); System.out.println(s1); //kompajler ovdje piše s1.toString() System.out.println(s2); // kompajler ovdje piše s2.toString() } } Ispis na ekranu: Student@1fee6fc Student@1eed786
Kao što se može vidjeti u ovom primjeru, ispis s1 i s2 ispisuje hashcode vrijednosti objekata, a mi želimo da ispisuje vrijednosti ovih objekata. Pošto Java kompajler interno poziva toString() metod, preklapanje ovog metoda će vratiti specificirane vrijednosti. Razmotrimo to u sljedećem primjeru:
Primjer Java toString() metoda
Pogledajmo sada realni primjer toString() metoda.
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(){ //preklapanje toString() metoda return rollno+" "+name+" "+city; } public static void main(String args[]){ Student s1=new Student(101,"Petar","Beograd"); Student s2=new Student(102,"Marko","Banjaluka"); System.out.println(s1); //kompajler ovdje piše s1.toString() System.out.println(s2); // kompajler ovdje piše s2.toString() } } Ispis na ekranu: 101 Petar Beograd 102 Marko Banjaluka
Objektno orijentisano programiranje u Javi Index