toString() Methode überlagern

Cherrycoke

Mitglied
Hallo,

ich versuche gerade in einem kleinen Programm die Methode toString() zu überlagern.

Hierzu habe ich folgendes Programm geschrieben:

Java:
public class Test {
  
  @Override public String toString(){
    return "hallo";
  }
  
  public static void main( String[] args ){
      int[] test = {0, 1, 2};

      System.out.println( test.toString() );
  }
}

Warum gibt das Programm nun bei einem Aufruf nicht "hallo" aus?

Danke für die Hilfe!
 
Zuletzt bearbeitet von einem Moderator:
Hi

auch wenn ich jetzt nicht so viel Ahnung von Java habe sehe ich glaub ich trotzdem dein Problem.
Die Methode toString überschreibst du ja nur für deine Klasse "Test".
Folglich sollte das jetzt dein gewünschtes Ergebnis erzielen:
Java:
public class Test { 
  @Override public String toString(){
    return "hallo";
  }
}
Test objekt = new Test();
System.out.println(objekt.toString());
 
Die Methode toString ist ja dafür gedacht in einem String alles nötige reinzupacken, damit sich der Inhalt des Objekts selbst erklären kann. Und man somit in einem z.B. System.out einfach nur noch das Objekt hinschreiben muss, anstatt das gleiche immer neu zu schreiben.

Java:
public class Point { 

[...]

@Override   
public String toString(){
    return "Point: x: " + x + " y: " + y;
  }
}
public static void main(String[] args) {
    Point point = new Point (x, y);
    System.out.println(objekt);
}
}

Die toString Methode wird implizit aufgerufen.

Wer Fehler findet kann sie behalten :D
 
Zurück