Metod toString() u Javi

Ako želimo predstaviti bilo koji objekat kao string, toString() metod je veoma pogodan.
Metod toString() vraća string reprezentaciju objekta.
Ako ispisujemo neki objekat, 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 vrednosti objekta, tako da nije potrebno pisati mnogo koda.
Razumevanje problema bez toString() metoda
Pogledajmo jednostavan kod koji ispisuje referencu.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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 videti u ovom primeru, ispis s1 i s2 ispisuje hashcode vrijednosti objekata, a mi želimo da ispisuje vrednosti ovih objekata. Pošto Java kompajler interno poziva toString() metod, preklapanje ovog metoda će vratiti specifikovane vrednosti. Razmotrimo to u sledećem primeru:
Primer Java toString() metoda
Pogledajmo sada realni primer toString() metoda:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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","Novi Sad"); 
  
  System.out.println(s1); //kompajler ovde piše s1.toString() 
  System.out.println(s2); // kompajler ovde piše s2.toString() 
 
}
Ispis na ekranu:
101 Petar Beograd
102 Novi Sad

Comments

comments