Miért nem lehet a Java-ban toString-et túlterhelni?
@Override
public String toString(){
String eredmeny="Név "+nev+" Kor: "+ kor);
System.out.println(eredmeny);
return eredmeny;
}
-@ jel ott van? Igen.
- Override nagy betűvel van? Igen.
- toString-nek van visszatérése? Igen.
Hibát nem ír ki.
De hiába nézek bármilyen oldalt, nem jó és nem jó és ugyanazt írják.
Akkor rosszul emlékeztem,nem lehet felülírni.
String eredmeny="Név "+nev+" Kor: "+ kor);
); az minek?
System.out.println(eredmeny);
Ott a return minek irod ki?
return eredmeny;
Maradjunk annyiban, hogy lehet overrideolni. Nekem is sikerült amíg Java-ban tanultam
@Override
public String toString(){
String eredmeny="Név "+nev+" Kor: "+ kor);
System.out.println(eredmeny);
return eredmeny;
}
Hát ezzel nem csodálom, hogy nem lehet, mert ez okádék, nem kód.
1) Használj StringBuildert.
2) Az a ) mit keres a végén?
3) Itt kiíratni tényleg felesleges.
String eredmeny="Név "+nev+" Kor: "+ kor);
StringBuildert? Persze, ha iterál. Itt ilyen nincs. Cserébe attól jó olvashatatlan lesz a kód, és nem mellesleg 1.6-tól a fordító automatikusan kioptimalizálja (internally StringBuilderre fordítja) a sztringek konkatenációját. Lehet, hogy jó tanácsnak szántad, de jelen helyzetben nem sokat ér.
A kedves kérdezőnek pedig felhívnám a figyelmét, hogy a túlterhelés (overloading) nem ugyanaz, mint a felülírás (override).
Emellett jelezném, hogy a toString metódus nem arra van, hogy a felhasználó számára megjelenített formátumot kialakítsa. Ajánlott olvasmány: MVC / MVP pattern
A toString egyébként ugyanúgy Override-olható (és overloadolható, bár ez értelmetlen), mint bármely más metódus. Vagy nem is fordul a kód (valószínűleg amiatt a felesleges zárójel miatt), vagy nincs meghívva az a toString. Az a System.out.println meg tényleg nem való oda.
"-@ jel ott van? Igen.
- Override nagy betűvel van? Igen.
- toString-nek van visszatérése? Igen."
Az annotáció nem szükséges, csak nagyon ajánlott, attól még működhet.
A toString-nek van visszatérése, méghozzá String, úgyhogy ez is jó.
A láthatósága public, az is jó.
Nincs paramétere, az is jó.
Végezetül: ezekért mind szólna a compiler amúgy is (ha odateszed az override-ot), szóval ez így jó.
Köszi a válaszokat. :)
Az mindegy,mennyire szokás a toString-e felhasználó számára kialakítani, ha az van a zh-ban egy feladatként.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!