Metod toString() u Javi

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 objekat. Tako preklapanje toString() metoda vraća željeni izlaz, a to može biti stanje nekog objekta i sl., zavisno od naše implementacije.
Prednosti Java toString() metoda
Preklapanjem toString() metoda klase Object 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 vrednosti 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
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

Close Menu
Show Buttons
Hide Buttons