Ak chcete reprezentovať akýkoľvek objekt ako reťazec, metóda toString(). vzniká.
Metóda toString() vracia reťazcovú reprezentáciu objektu.
Ak vytlačíte akýkoľvek objekt, kompilátor Java interne vyvolá na objekte metódu toString(). Takže prepísanie metódy toString() vráti požadovaný výstup, môže to byť stav objektu atď. v závislosti od vašej implementácie.
Výhoda metódy Java toString().
Prepísaním metódy toString() triedy Object môžeme vrátiť hodnoty objektu, takže nepotrebujeme písať veľa kódu.
Pochopenie problému bez metódy toString().
Pozrime sa na jednoduchý kód, ktorý vytlačí referenciu.
Študent.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() } }
Výkon:
Student@1fee6fc Student@1eed786
Ako môžete vidieť vo vyššie uvedenom príklade, tlač s1 a s2 vytlačí hodnoty hashcode objektov, ale ja chcem vytlačiť hodnoty týchto objektov. Keďže kompilátor Java interne volá metódu toString(), prepísanie tejto metódy vráti zadané hodnoty. Pochopme to na príklade uvedenom nižšie:
Príklad metódy Java toString().
Pozrime sa na príklad metódy toString().
Študent.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() } }
Výkon:
101 Raj lucknow 102 Vijay ghaziabad
Vo vyššie uvedenom programe interne volá kompilátor Java natiahnuť() metóda, prepísanie tejto metódy vráti zadané hodnoty s1 a s2 predmety triedy Študent.