Veröffentlicht 15. November 200618 j Hallo, wie kann man den Vector von Klasse A in Klasse B aufrufen? bzw. ihn dorthin klonen? ( clone(); ) danke
16. November 200618 j Autor ich habe einen Vector mit einem Element dadrinne, dieses Element ist von der Klasse Teilnehmer, die von Thread erbt, wenn ich nun vector.toString() aufrufe erscheint [Thread[Thread-x,5,main]] wie kriege ich stattdessen die richtige ausgabe raus? danke
16. November 200618 j wie kriege ich stattdessen die richtige ausgabe raus? lol Ähm. Das ist die richtige Ausgabe!? Falls Du aber lieber den Teilnehmernamen hättest, solltest Du in der Klasse Teilnehmer de Methode toString überschreiben. Woher soll den die JVM sonst wissen, was ausgegeben werden soll?
16. November 200618 j Autor sorry, klar teilnehmernamen hm..., wie soll den meine neue toString methode aussehen? finde irgendwie keine beispiele bei google.
16. November 200618 j Autor sorry, klar teilnehmernamen hm..., wie soll den meine neue toString methode aussehen? finde irgendwie keine beispiele bei google. edit: wenn ich nciht von thread erbe kommt sowas: Teilnehmer@18a7efd die klasse toString sieht nciht unbeschrieben so aus: getClass().getName() + Integer.toString(hashCode()); hab die probiert als test so unzubennen: public void toSTring(){ getClass().getName(); } trotzdem kommt Teilnehmer@18a7efd raus - das kann doch nciht sein?
16. November 200618 j Autor sorry, der beitrag davor ist falsch! ich habe bei toSTring T groß geschrieben. wenn ich aber toString jetzt ändern will, gibt der compiler aus dass es nicht überschrieben werden kann hab zb. folgendes eingeben: public void toString(){ Integer.toHexString(hashCode()); } toString() in Server cannot override toString() in java.lang.Object; attempting to use incompatible return type Compilierung beendet
16. November 200618 j Doch, das kann sehr wohl sein. Du sollst die Methode ja auch nicht umbenennen (das ist sowieso nicht möglich!). Du sollst sie überschreiben. Dabei darf sich weder der Name, die Parametersignatur noch die Klasse des Rückgabewertes ändern. Es ist einzig möglich, die Kapselung nach gewissen Regeln zu ändern (also nicht frei nach Belieben!). Schau dir in der API Doc von Java die Methode toString() mal an. Vielleicht fällt dir ja der Fehler auf, wenn du ihren Namen mit dem Namen deiner toString-Methode vergleichst. Danach überschreibe sie korrekt. Behalte den Namen bei (achte auch auf Groß- und Kleinschreibung) und der Rest ergibt sich von allein. Als Ausgabe solltest du dann den Namen deiner Teilnehmer-Klasse erhalten, ganz ohne den Hash-Code. Sofern du die Klasse in einem Package hast (ich vermute mal, dass du das nicht hast), wirst du auch noch das Package davor erhalten. Lies dich am besten mal durch die Einsteiger-Lektüre für Java. Einführungen und Tutorials. Derer gibt es unzählige, wie zum Beispiel die Java-Tutorials von Sun. Grüße aus HH Arvid.
16. November 200618 j public void toString()Wie schon eben geschrieben: Der Typ (bzw. die Klasse) der Rückgabe darf sich nicht unterscheiden, wenn du die Methode überschreibst.
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.