Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

vector in einer anderen klasse aufrufen

Empfohlene Antworten

Indem du die Gettermethode des Vectors in Klasse A aufrust oO?

  • 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

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?

  • 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?

  • 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

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.

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.