Herhangi bir nesneyi dize olarak temsil etmek istiyorsanız, toString() yöntemi meydana gelir.
toString() yöntemi, nesnenin String temsilini döndürür.
Herhangi bir nesneyi yazdırırsanız, Java derleyicisi dahili olarak nesne üzerinde toString() yöntemini çağırır. Yani toString() yöntemini geçersiz kılmak istenen çıktıyı döndürür; uygulamanıza bağlı olarak bu bir nesnenin durumu vb. olabilir.
Java toString() yönteminin avantajı
Object sınıfının toString() metodunu override ederek, nesnenin değerlerini döndürebiliyoruz, bu sayede çok fazla kod yazmamıza gerek kalmıyor.
toString() yöntemi olmadan sorunu anlama
Referansı yazdıran basit kodu görelim.
Öğrenci.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() } }
Çıktı:
Student@1fee6fc Student@1eed786
Yukarıdaki örnekte gördüğünüz gibi s1 ve s2'yi yazdırmak nesnelerin hashcode değerlerini yazdırıyor ancak ben bu nesnelerin değerlerini yazdırmak istiyorum. Java derleyicisi dahili olarak toString() yöntemini çağırdığından, bu yöntemin geçersiz kılınması belirtilen değerleri döndürecektir. Aşağıda verilen örnekle bunu anlayalım:
Java toString() yöntemi örneği
toString() yönteminin bir örneğini görelim.
Öğrenci.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() } }
Çıktı:
101 Raj lucknow 102 Vijay ghaziabad
Yukarıdaki programda Java derleyicisi dahili olarak çağırır toString() yöntemi geçersiz kılmak, belirtilen değerleri döndürecektir. s1 Ve s2 Öğrenci sınıfının nesneleri.