Intellij Java-Klasse mit Attributen angelegt. Ein Objekt auslesen?

2 Antworten

Hallo,

Das @1b28cdfa ist die Hash-Code des Objekts, der von der hashCode() Methode der Klasse Object zurückgegeben wird. Es ist eine Zahl, die das Objekt identifiziert.

Um ein Objekt mit seinen Attributen per System.out.println(...) auszulesen, musst du die toString() Methode der Klasse überschreiben. Diese Methode gibt eine Zeichenfolge zurück, die das Objekt beschreibt.

Zum Beispiel:


public class ExampleClass {
  private String name;
  private int age;

  public ExampleClass(String name, int age) {
    this.name = name;
    this.age = age;
  }

  // Überschreiben der toString() Methode
  public String toString() {
    return "ExampleClass[name=" + name + ", age=" + age + "]";
  }
}

// Erzeugen eines Objekts
ExampleClass obj = new ExampleClass("Simon", 25);

// Auslesen des Objekts
System.out.println(obj); // Gibt ExampleClass[name=Simon, age=25] aus

hier zum nachlesen:

arrays - printing out attributes of multiple objects in java - Stack Overflow

java - Printing all variables value from a class - Stack Overflow

java - How to print an attribute of an object? - Stack Overflow

Woher ich das weiß:Hobby
Für was steht/bedeutet dieses @1b28cdfa?

Das ist ein Hash des Objektes, um es identifizieren zu können.

Wie kann ich mein Objekt mit seinen Attributen per System.out.println(...) auslesen?

Du müsstest dafür in deiner Klasse selbst die toString-Methode überschreiben und somit selbst festlegen, was ausgegeben werden soll

Woher ich das weiß:Studium / Ausbildung – Abgeschlossenes Studium der Informatik (B.Sc.)
RedDevil1982 
Fragesteller
 17.03.2023, 13:21

Und was ist ein Hash des Objektes?

0
gnuman79  17.03.2023, 13:24
@RedDevil1982

Ein Hash eines Objekts ist eine numerische Darstellung des Inhalts des Objekts. Er wird von der hashCode() Methode der Klasse Object berechnet. Er dient dem Nutzen von Hash-Tabellen wie HashMap oder HashSet.

Der Hash eines Objekts hängt von den Attributen des Objekts ab. Er sollte so gestaltet sein, dass er möglichst eindeutig ist und sich nicht oft ändert. Er sollte auch konsistent mit der equals() Methode sein, das heißt, zwei gleiche Objekte sollten den gleichen Hash haben.

0
xxxcyberxxx  17.03.2023, 13:25
@RedDevil1982
Und was ist ein Hash des Objektes?

Ein Hash ist prinziell eine Abbildung. Eine Hashfunktion bildet eine große Menge auf eine kleine, beschränktere Menge ab. Wie gesagt, es dient zur Identifikation des Objektes.

Wenn du z.B. die Klasse "Auto" hast und davon zwei verschiedene Objekte (z.B. ein blauer Audi und ein roter Porsche) erstellst, werden diese einen unterschiedlichen Hash haben

0