hund555 Geschrieben 15. November 2006 Geschrieben 15. November 2006 Hallo, wie kann man den Vector von Klasse A in Klasse B aufrufen? bzw. ihn dorthin klonen? ( clone(); ) danke
Sigi Geschrieben 15. November 2006 Geschrieben 15. November 2006 Indem du die Gettermethode des Vectors in Klasse A aufrust oO?
hund555 Geschrieben 16. November 2006 Autor Geschrieben 16. November 2006 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
geloescht_Newlukai Geschrieben 16. November 2006 Geschrieben 16. November 2006 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?
hund555 Geschrieben 16. November 2006 Autor Geschrieben 16. November 2006 sorry, klar teilnehmernamen hm..., wie soll den meine neue toString methode aussehen? finde irgendwie keine beispiele bei google.
hund555 Geschrieben 16. November 2006 Autor Geschrieben 16. November 2006 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?
hund555 Geschrieben 16. November 2006 Autor Geschrieben 16. November 2006 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
_Arvid_ Geschrieben 16. November 2006 Geschrieben 16. November 2006 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.
_Arvid_ Geschrieben 16. November 2006 Geschrieben 16. November 2006 public void toString()Wie schon eben geschrieben: Der Typ (bzw. die Klasse) der Rückgabe darf sich nicht unterscheiden, wenn du die Methode überschreibst.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden