Ha bármilyen objektumot karakterláncként szeretne ábrázolni, toString() metódus létrejön.
A toString() metódus az objektum String reprezentációját adja vissza.
Ha bármilyen objektumot nyomtat, a Java fordító belsőleg meghívja a toString() metódust az objektumon. Tehát a toString() metódus felülbírálása a kívánt kimenetet adja vissza, ez lehet egy objektum állapota stb. a megvalósítástól függően.
A Java toString() metódus előnye
Az Object osztály toString() metódusának felülbírálásával visszaadhatjuk az objektum értékeit, így nem kell sok kódot írnunk.
A probléma megértése toString() metódus nélkül
Lássuk az egyszerű kódot, amely hivatkozást nyomtat.
Diák.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() } }
Kimenet:
Student@1fee6fc Student@1eed786
Ahogy a fenti példában is látható, az s1 és s2 nyomtatása kiírja az objektumok hashcode értékeit, de én ki szeretném nyomtatni ezen objektumok értékeit. Mivel a Java fordító belsőleg meghívja a toString() metódust, a metódus felülbírálása a megadott értékeket adja vissza. Értsük meg az alábbi példával:
Példa a Java toString() metódusra
Nézzünk egy példát a toString() metódusra.
Diák.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() } }
Kimenet:
101 Raj lucknow 102 Vijay ghaziabad
A fenti programban a Java fordító belső hívást hajt végre toString() metódus, a metódus felülbírálása a megadott értékeket adja vissza s1 és s2 a tanulói osztály tárgyai.
do és while ciklus java-ban