@1db9742

Individuum

Mitglied
Servus,
hier eine kurze und knackige Frage. Hier mein Code:

Java:
public class Hausaufgabe8 {
   
    int x;
   
    public Hausaufgabe8 (int i) {
       
        this.x = i; //Dadruch wird x der eingegebene Wert übergeben
       
    }
   

    public static void main (String args []) {
           
    //Test von Datentyp Hausaufgabe8
       
    Hausaufgabe8 Test = new Hausaufgabe8 (10);   
    System.out.println(Test);
       
           
    }
}

Warum bekomme ich diese Ausgabe Hausaufgabe8@1db9742 anstatt die 10?
 

httpdigest

Top Contributor
Weil du toString() nicht implementierst:
Java:
public class Hausaufgabe8 {
  int x;
  public Hausaufgabe8(int i) {
    this.x = i;
  }
  @Override
  public String toString() {
    return Integer.toString(x);
  }
  public static void main(String args[]) {
    System.out.println(new Hausaufgabe8(10));
  }
}
 

L0oNY

Bekanntes Mitglied
Weil du sagst "Schreibe mir Hausaufgabe" anstatt "Schreibe mir das x in der Hausaufgabe". Hausaufgabe ist ein komplexes Objekt und kann nicht einfach geschrieben werden.

Wenn du ein Buch liest, liest du auch den Text des Buches, und nicht das Buch selber ;)
 

InDerNot

Mitglied
Die Methode von httpdigest kannst du natürlich verwenden. Aber noch schöner fände ich es, wenn du einen Getter und ggf. einen Setter schreiben würdest für das x.
Du brauchst nicht zwingend einen String für die Methode
Code:
System.out.println( "" );

Mein Vorschlag wäre also:
Code:
public class Hausaufgabe8 {
   
    private int x;
   
    public Hausaufgabe8( int x ) { // Constructor mit dem Parameter x (integer)
        this.x = x;
    }
   
    public int getX() { // returnt das X
        return x;
    }
   
    public static void main( String[] args ) {
        Hausaufgabe8 aufgabe = new Hausaufgabe8( 10 ); // Erstelle eine neue Instanz
        System.out.println( aufgabe.getX() );
    }
   
}
 

Robat

Top Contributor
Das mit dem Getter ist prinzipiell eine Möglichkeit, aber: Sobald du mehr als 1 Attribut in der Klasse hast kann es schnell aufwendig/nervig werden, jedes mal alle Getter Methoden aufzurufen. Zumal die Object#toString() Methode ja eine String-Repräsentation des Objektes ist/sein soll - warum also nicht nutzen?
 

Neue Themen


Oben