Die Objektklasse hat eine Methode genannt, toString (). Diese Methode gibt eine String -Darstellung des Objekts einer normalen Klasse zurück. Alle Klassen erben diese Methode vom Klassenobjekt. Jedes Array (als Objekt) hat eine ähnliche Methode.
Leider ist diese Zeichenfolgendarstellung des Objekts ein kurzer Textcode (kurzer Zeichenfolge -Literaltext). Es ist nicht sehr nützlich, obwohl es dekodiert werden kann. Eine solche Dekodierung wird in diesem Artikel nicht behandelt. Und so muss der Programmierer diese Methode überschreiben, um eine Darstellung des Objekts zu haben. Der Computerbenutzer wird das zu schätzen wissen. Das Überschreiben wird in diesem Artikel behandelt.
Standardverhalten der Methode toString ()
Primitive Typen
Primitive Typen wie das int existieren in ihrem eigenen Recht. Jeder primitive Typ in Java hat jedoch eine entsprechende Klasse (Wrapper). Wenn es darum geht, primitive Objekte in Zeichenfolgen umzuwandeln, sollten die entsprechenden Klassen verwendet werden, die verwendet werden sollten. Das folgende Programm zeigt dies für die int. Die entsprechende Klasse für int ist die Ganzzahlklasse.
öffentliche Klasse TheclassDer Ausgang ist 5. Wenn „Integer“ als int tippt worden wäre, wäre eine Fehlermeldung zum Kompilierungszeiten ausgegeben worden. Die Methode der ToString () der größten Vorfahren wurde hier ohne Probleme verwendet. Das heißt, die Ganzzahl, 5 wurde in eine Zeichenfolge umgewandelt und ohne Probleme gedruckt. Wenn die Klasse jedoch eine Programmierer-definierte Klasse oder eine andere Art von vordefinierter Klasse wäre, hätte es ein Problem gegeben.
Programmierer definierte Klasse
Betrachten Sie das folgende Programm, das die Darstellung des von Programmierer definierten Objekts OBJ ausdruckt:
Klasse aclassDie Ausgabe ist:
ACLASS@6ff3c5b5Dies ist ein kurz codierter Text - nicht sehr nützlich für den Benutzer. Der Benutzer hat möglicherweise etwas vorgezogen wie:
prop1 => 1;Dies sind die verschiedenen Eigenschaften (Felder) und ihre Werte. Was eine Eigenschaft von ihrem Wert im Ausdruck unterscheidet, lautet "=>", der vom Programmierer eingeführt werden sollte. In einer solchen Frage werden die Methoden normalerweise nicht gedruckt.
Array
Betrachten Sie das folgende Programm, in dem das Array als Objekt arr gedruckt werden sollte:
öffentliche Klasse TheclassDie Ausgabe ist,
[Ljava.Lang.String;@D716361Welches ist ein weiterer Textcode. Ist es das was du wolltest? Sie hätten gerne so etwas gesehen:
eins zwei dreiwo das Element -Separator "," ist.
Aufführen
Betrachten Sie das folgende Programm, in dem eine ArrayList als Objekt, AL, gedruckt werden sollte:
Java importieren.Util.*;Die Ausgabe ist:
[eins zwei drei]Die Ausgabe ist ziemlich gut! Dies bedeutet, dass der Programmierer das Objekt nicht überschreiben muss.Methode toString () Wenn sie die ArrayList (oder mögliche Liste im Allgemeinen) betrifft. Wenn es jedoch um Programmierer-definierte Objekte oder das Array geht, muss der Programmierer die Methode überschreiben.
Karte
Betrachten Sie das folgende Programm, wobei ein HashMap als Objekt HM gedruckt werden sollte:
Java importieren.Util.*;Die Ausgabe ist:
ein = 1, zwei = 2, drei = 3Die Ausgabe ist ziemlich gut! Die Schlüssel-/Wertpaare sind unterscheidbar, wobei das Element -Separator ",", "," ",", ". Dies bedeutet, dass der Programmierer das Objekt nicht überschreiben muss.toString () Methode, wenn sie die HashMap (oder mögliche Karte im Allgemeinen) betrifft. Wenn es jedoch um Programmierer-definierte Objekte oder das Array geht, muss der Programmierer die Methode überschreiben.
Der Rest dieses Artikels befasst sich mit der Überschreibung des Objekts.toString () erbte Methode des Programmierers definiert und des Arrays.
Übergeordnetes ToString ()
Array
Mit dem Array ist die Überschreibung heute indirekt oder umgehängt. Java hat eine Klasse namens Arrays. Diese Klasse hat die TOString -Methode, die bereits von Java überschrieben wurde. In der Klasse ist die Methode toString () statisch: Dies bedeutet, dass die Arrays -Klasse nicht so instanziiert werden muss. Hier nimmt die Methode toString () ein Argument an, das die Kennung des Arrays ist. Es erzeugt eine Ausgabe, bei der das Trennzeichen "," ist. Klassenarrays sind in der Java.Util.* Paket. Das folgende Programm zeigt die Problemumgehung für Arrays:
Java importieren.Util.*;Die Ausgabe ist:
[10.1, 20.2, 30.3]Die Ausgabe ist ziemlich gut! Und so muss der Programmierer heute keine übergeordnete Methode für die Methode toString () für Java -Array codieren. Der Programmierer macht eine Problemumgehung mit Arrays und seinem ToString ().
Programmierer definiertes Objekt
Bei der definierten Programmierer -Klasse muss die Methode toString () der Objektklasse nur neu definiert werden, wie in der folgenden Programmierer definierte Klasse dargestellt:
Klasse aclassDie Technik besteht darin, den String-Verkettungsoperator zu verwenden, um Nicht-String-Literalen mit String-Literalen zu verbinden. Das vorhergehende "@Override" verhindert bestimmte Fehler in der überschriebenen Methode. Die Neudefinition hier ist überschreibend. Eine von Programmiererin definierte Klasse entspricht dem Programmierer-definiertem Objekt. Die folgende Java main () -Methode ist für die obige Klasse geeignet:
öffentliche Klasse TheclassDie Ausgabe ist:
prop1 => 1Diese Ausgabe wird vom Benutzer besser geschätzt als der kurze Textcode, "ACLASS@6ff3C5B5". Vergessen Sie nicht, dass die übergeordnete Definition in der Klasse von Interesse stattfindet.
Abschluss
Die Objektklasse hat eine Methode genannt, toString (). Diese Methode gibt eine String -Darstellung des Objekts einer Klasse zurück. Alle Klassen erben diese Methode vom Klassenobjekt. Jedes Array (als Objekt) hat eine ähnliche Methode. Jede Klasse muss diese Methode indirekt oder direkt überschreiben.
Verwenden Sie mit primitiven Typen die Referenztypen (e.G., Ganzzahl für int), wobei Java bereits über eine vordefinierte übertragete Methode toString () verfügt, die zufriedenstellend ist. Auch bei Listen und Karten hat Java bereits eine vordefinierte Overdiden toString () -Methode, die zufriedenstellend ist. Machen Sie mit einem Array eine Problemumgehung: Verwenden Sie die Methode toString () der Arrays -Klasse. Führen Sie mit der Programmierer-definierten Klasse das tatsächliche Überschreiben mit dem String-Verkettungsoperator +so oft wie möglich durch.