Elmagyaráznátok pontosan Java-ban hogyan münködik a toString ()?
Én így használtam az egyik tutorialban, de nem fogadta el
String[] names = { "Jack", "Kate"};
String output;
output = Arrays.toString(names);
System.out.print(output);
Ne kövezzetek meg, nagyon kezdö vagyok :D
Az, hogy "nem fogadta el", nem nyújt semmilyen információt nekünk, ami alapján segíteni tudnánk. Másold be a KONKRÉT HIBAÜZENETet.
toString() metódusa minden Object-nek van. Alapértelmezetten az osztálynevet és egy memóriacímet (vagy hasonlót) ír ki, érdemes felüldefiniálni saját osztályokban.
Az Arrays egy segédmetódusokat tartalmazó osztály, aminek van olyan toString metódusa, aminek különböző típusú tömböket lehet átadni.
Nem mellesleg, a bemásold programod tökéletesen működik:
Az első csak félig irt helyes választ, hiszen a kérdésben az Arrays.toString(Object[]) van, nem az Object.toString().
Látható, hogy a paraméterezésben is különbség van.
Az Arrays.toString a tömb egyes "elemeit" összefűzi vesszóvel elválasztva. (+ []-be teszi).
Az elemei szót azért irtam idézójelben, miven igazából az elemek String-é alakitott verzióját fűzi össze.
Ez gyakorlatilag az elem.toString()... ez már az a függvény, amit az első válaszoló irt. (Valójában nem pontosan ez történik, mivel null-ra is működik az Arrays.toString(arr), mig ha null.toString()-et hivnál, az exceptiont dobna)
Na kezdjük azzal, hogy mit is értünk állapot alatt. Egy adott objektum állapotán az objektumban lévő tulajdonságok értékeinek összességét értjük.
class Flakon {
public int Urtartalom;
public int FolyadekMennyiseg;
}
Flakon f = new Flakon();
f.Urtartalom = 5;
f.FolyadekMennyiseg = 3;
Az f flakonnak az az állapota, hogy az űrtartalma 5, és a benne lévő folyadékmennyiség 3. A toString() annyit csinál, hogy az objektum állapotát String-ként adja meg.
Ha nincs felülírva a toString akkor ennyit jelent:
/**
* Returns a string representation of the object. In general, the
* {@code toString} method returns a string that
* "textually represents" this object. The result should
* be a concise but informative representation that is easy for a
* person to read.
* It is recommended that all subclasses override this method.
* <p>
* The {@code toString} method for class {@code Object}
* returns a string consisting of the name of the class of which the
* object is an instance, the at-sign character `{@code @}', and
* the unsigned hexadecimal representation of the hash code of the
* object. In other words, this method returns a string equal to the
* value of:
* <blockquote>
* <pre>
* getClass().getName() + '@' + Integer.toHexString(hashCode())
* </pre></blockquote>
*
* @return a string representation of the object.
*/
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
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!