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.
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
1234567891011121314151617181920212223class
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
1234567891011121314151617181920212223242526class
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