Objekte in Array speichern und ausgeben

M

Miguel22

Mitglied
Hallo ich habe folgendes Problem.

Objekt obj0 = new Objekt(100, "Grün");
Objekt obj1 = new Objekt(200, "Blau");

Und zwar möchte ich meine erzeugten Objekte inklusive dazugehöriger Paramter in einem Array abspeichern und mittels einer for-Schleife ausgeben lassen.
Ich habe folgendes probiert:

Java:
Objekt [] objekte = {obj0, obj1}; 
for(int i = 0; i < objekte.length; i++) {
            System.out.println(objekte[i].toString());

bekomme aber nur den Speicherplatz ausgegeben.
 
Zuletzt bearbeitet von einem Moderator:
M

Miguel22

Mitglied
Ok wie funktioniert das denn?
bzw mir ist nicht klar, wie ich das richtig ausgeben kann.
 
Zuletzt bearbeitet:
temi

temi

Top Contributor
Wenn deine Objekte getter haben, dann kannst du auch die verwenden, z.B.
Java:
System.out.println("Farbe: " + objekte[i].getColor());
Der Zugriff auf ein einzelnes Objekt im Array erfolgt über den sog. Index. In deinem Fall die Laufvariable i der Schleife.

objekte[0] ist das erste Element im Array, objekte[1] das Zweite, usw.

Ansonsten:

Aktuell rufst du die Methode toString() auf, deren Standardimplementation von Object geerbt wird. Diese gibt einen Hashwert aus. Du kannst diese aber in der Deklaration deiner Klasse "Objekt" überschreiben, z.B.
Java:
class Foo {
    private int value = 42;

    @Override
    public String toString() {
        return "Wert:" + value;
    }
}
 
Zuletzt bearbeitet:
M

Miguel22

Mitglied
Danke für die Antwort, ich weiss wie man die Objekte eines Arrays ausruft.
Aber ich wollte obj0 und obj1 mit den jeweiligen Parametern ausgeben lassen und bekomme diese Verknüpfung nicht hin.
 
temi

temi

Top Contributor
Hier sind drei Möglichkeiten, such dir eine aus:
Java:
class Foo {
 
    public int value; // Instanzvariablen sollten i.d.R. nicht public sein!
 
    public Foo(int value) {
        this.value = value;
    }
 
    // Getter-Methode für "value". Das ist eher die Regel, zusammen mit einer "private" Instanzvariable
    public int getValue() {
        return value;
    }
 
    @Override
    public String toString() {
        return "Wert = " + value;
    }
}

public static void main() {
    Foo f1 = new Foo(1);
    Foo f2 = new Foo(2);
 
    Foo[] arr = { f1, f2 };
 
    for (int i = 0; i < arr.length; i++) {
        // 1. Zugriff auf das öffentliche Attribut
        System.out.println(arr[i].value);
        // 2. Zugriff über getter
        System.out.println(arr[i].getValue());
        // 3. Zugriff über toString()
        System.out.println(arr[i]); // toString() wird intern von println aufgerufen und kann deshalb hier entfallen
    }
}
 
Zuletzt bearbeitet:
kneitzel

kneitzel

Top Contributor
Warum tust du es dann nicht? In deinem Code machst du etwas anderes ;)
Doch, er macht es. Daher ist die Schrift nach Objekte kursiv. Da er keine Code Tags verwendet hat, wird das [i] als Anweisung für kursive Schrift gewertet ...

Das Problem ist also tatsächlich die toString Methode in Object, die er zur sinnvollen Ausgabe überschreiben sollte. (#2)
Und die anderen Optionen von Dir in #7 sind auch valide aber geben natürlich nur einen einzelnen Wert und nicht das Objekt an sich aus.
 
temi

temi

Top Contributor
Doch, er macht es. Daher ist die Schrift nach Objekte kursiv. Da er keine Code Tags verwendet hat, wird das [i] als Anweisung für kursive Schrift gewertet ...
Ah, stimmt. Das hatte ich nicht gesehen!

Dann kann er sich trotzdem eine der drei Möglichkeiten raussuchen ;) Vorzugsweise die Zweite oder Dritte.
 
Zuletzt bearbeitet:
kneitzel

kneitzel

Top Contributor
Er kann ja auch mehr als einen Wert ausgeben, so vorhanden. Was ist denn die Ausgabe "des Objektes an sich"?
Die vom Entwickler festgelegte String Representation der Instanz bzw. Klassenname@HashCode so toString nicht überschrieben wurde.

Und "Objekt ausgeben" bedeutet eben die Ausgabe vom Objekt. Wenn Du ein AMG haben möchtest und ich gebe Dir dann eine Fußmatte aus dem AMG: Das ist doof.

Wenn Dich natürlich nur die Fußmatte interessiert hat, dann kann das Ergebnis das Gleiche sein. Aber vom Ablauf her ist es etwas anderes.
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Das Problem ist also tatsächlich die toString Methode in Object, die er zur sinnvollen Ausgabe überschreiben sollte. (#2)
Wobei "sinnvolle Ausgabe von toString" und generell "sinnvolle" ja unterschiedliche Dinge sind. Was in toString sinnvoll sein kann, kann als Ausgabe in z.B. einer Konsolen- oder GUI-Anwendung völlig unsinnig sein.
 
kneitzel

kneitzel

Top Contributor
Wobei "sinnvolle Ausgabe von toString" und generell "sinnvolle" ja unterschiedliche Dinge sind. Was in toString sinnvoll sein kann, kann als Ausgabe in z.B. einer Konsolen- oder GUI-Anwendung völlig unsinnig sein.
Ja, wenn man das betrachtet, dann wird toString generell unsinnig. Dann kommt vermutlich zu einer Trennung von Model und View. Das Model weiss nicht, was dann bei der View angezeigt wird und wie es angezeigt wird.

Aber das Ändert nichts an dem Punkt: Es mag sein, dass die Frage nach Deinem Auto dann nur das Nummernschild zurück gibt. Aber dennoch ist es ein Unterschied, ob ich Dein Auto oder das Nummernschild deines Autos ausgebe.

Diese Frage ist unabhängig davon, wie die Logik aufgebaut ist. Ob das Auto in Form einer toString das Nummernschild zurück gibt oder ob eine View ein Auto bekommt und dann nur das Nummernschild darstellt.

Wichtig ist: Die View bekommt das Auto und nicht nur das Nummernschild.

Das ist nur mein Gedanke - ich hoffe, ich konnte es etwas verdeutlichen. Ansonsten einfach ignorieren. In diesem einfachen Fall ist das auch nicht wirklich relevant. Und wenn es komplexer wird, dann stellt sich die Fragestellung automatisch nicht mehr ....
 
temi

temi

Top Contributor
Wobei "sinnvolle Ausgabe von toString" und generell "sinnvolle" ja unterschiedliche Dinge sind. Was in toString sinnvoll sein kann, kann als Ausgabe in z.B. einer Konsolen- oder GUI-Anwendung völlig unsinnig sein.
Joshua Bloch empfiehlt in "Effective Java" ja immer toString() zu überschreiben: "Sofern praktikabel sollte toString() alle interessanten Informationen im Objekt zurückgeben." Das bedeutet aber nicht, dass diese Informationen des Objektes auch für die jeweilige Ausgabe (in der View) interessant sein müssen. Generell habe ich mit der Aussage "Ausgabe des Objektes an sich" etwas Probleme. Was soll das denn sein? Der Name der Klasse? Alle (wirklich alle?) Informationen, die im Objekt gekapselt sind? Ich denke weder noch und sehe die Informationen aus toString() weniger interessant für die Ausgabe in einer View, sondern als von Menschen lesbare Repräsentation eines Objektes für Debuggingzwecke und dann sind wir wieder bei Bloch. Die View sollte sich ihre Ausgabe über entsprechende Getter zusammenbauen, je nach Bedarf.
 
Zuletzt bearbeitet:
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Joshua Bloch empfiehlt in "Effective Jave" ja immer toString() zu überschreiben: "Sofern praktikabel sollte toString() alle interessanten Informationen im Objekt zurückgeben." Das bedeutet aber nicht, dass diese Informationen des Objektes auch für die jeweilige Ausgabe (in der View) interessant sein müssen. Generell habe ich mit der Aussage "Ausgabe des Objektes an sich" etwas Probleme. Was soll das denn sein? Der Name der Klasse? Alle (wirklich alle!) Informationen, die im Objekt gekapselt sind? Ich denke weder noch und sehe die Informationen aus toString() weniger interessant für die Ausgabe in einer View, sondern als von Menschen lesbare Repräsentation eines Objektes für Debuggingzwecke und dann sind wir wieder bei Bloch. Die View sollte sich ihre Ausgabe über entsprechende Getter zusammenbauen, je nach Bedarf.
Auf genau das selbe wollte ich damit hinaus :)
 
kneitzel

kneitzel

Top Contributor
Generell habe ich mit der Aussage "Ausgabe des Objektes an sich" etwas Probleme.
Das ist doch Wortklauberei und das habe ich doch schon in #13 versucht deutlich zu machen ...

Einfache weitere Erläuterung: Fakt ist, dass es einen Unterschied gibt zwischen
System.out.println(someInstance) und System.out.prinltn(someInstance.someAttribute).
Das erste ist halt das "Objekt an sich" -> "an sich" also in der Bedeutung von das Objekt selbst.) und das zweite ist eben keine Ausgabe vom Objekt sondern von einem Attribut des Objektes. Und sollte die Aufgabe sein, das Objekt auszugeben, dann kann das so bereits als falsch angesehen werden.

Ansonsten fällt mir nicht ein, wie ich meine Wortwahl noch besser erläutern sollte. Und das ist vollkommen unabhängig von dem Ganzen anderen, dem ich ja in keiner Weise widerspreche ...
 
temi

temi

Top Contributor
Das ist doch Wortklauberei und das habe ich doch schon in #13 versucht deutlich zu machen ...

Einfache weitere Erläuterung: Fakt ist, dass es einen Unterschied gibt zwischen
System.out.println(someInstance) und System.out.prinltn(someInstance.someAttribute).
Das erste ist halt das "Objekt an sich" -> "an sich" also in der Bedeutung von das Objekt selbst.) und das zweite ist eben keine Ausgabe vom Objekt sondern von einem Attribut des Objektes.
Ruhig Brauner! ;) Alles gut, ich hab dich schon verstanden. Ich bin mir allerdings nicht sicher, ob es in der Aufgabe (?) darum geht, das "Objekt an sich" oder eben einfach dessen Attribute auszugeben. Ist auch egal, der TO hat alle Möglichkeiten genannt bekommen und kann sich aussuchen, was sinnvoll ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Objekte aus Array als String + kommasepariert speichern Java Basics - Anfänger-Themen 12
F Objekte in einem Array speichern Java Basics - Anfänger-Themen 1
B Verschiedene Objekte in 2 dimensionalem Array speichern Java Basics - Anfänger-Themen 10
P Objekte im Array speichern und auf den Inhalt zugreifen ? Java Basics - Anfänger-Themen 4
L Objekte im Array speichern Java Basics - Anfänger-Themen 3
PaperHat Objekte in Array vergleichen Java Basics - Anfänger-Themen 9
J Array Objekte einer Klasse zuordnen Java Basics - Anfänger-Themen 15
Orkanson Objekte in ein Array einfügen Java Basics - Anfänger-Themen 5
K Comparable - Objekte aus Array vergleichen und größtes auswählen Java Basics - Anfänger-Themen 1
S Klassen Objekt- Tabelle / Dynamisches 2Dimensionales Array für Objekte Java Basics - Anfänger-Themen 6
N Objekte in Array rein Java Basics - Anfänger-Themen 6
R Bilder aus Array als anklickbare Objekte Java Basics - Anfänger-Themen 3
J Array Objekte erstellen Java Basics - Anfänger-Themen 6
F Adressverwaltungsprogramm: Objekte einer Klasse in Array Java Basics - Anfänger-Themen 6
U Objekte in Array erstellen und Methode in verschiedenen klassen aufrufen Java Basics - Anfänger-Themen 5
T Objekte in Array verwalten Java Basics - Anfänger-Themen 4
I Objekte in einem Array sortieren Java Basics - Anfänger-Themen 19
B Ausgabe von Array aus Objekte Java Basics - Anfänger-Themen 2
W Objekte in einer Array sortieren Java Basics - Anfänger-Themen 3
T OOP Objekte erzeugen und in einem Array ausgeben. Java Basics - Anfänger-Themen 2
M Zugriff auf Objekte aus doppelten Array Java Basics - Anfänger-Themen 16
I Erstellte Objekte in Array's miteinander vergleichen Java Basics - Anfänger-Themen 11
R Objekte in Array ablegen - Vererbung Java Basics - Anfänger-Themen 5
L Mit Array neue Objekte erzeugen Java Basics - Anfänger-Themen 3
S Point-Objekte in Array einfügen Java Basics - Anfänger-Themen 13
H Objekte in ein array ablegen Java Basics - Anfänger-Themen 7
B Array-objekte,. Es wird ein Fehler ausgegeben Java Basics - Anfänger-Themen 11
J Mehrere Objekte in einem Array Java Basics - Anfänger-Themen 5
walker23m 2 objekte in das array [i] t Java Basics - Anfänger-Themen 2
G Array Objekte Klasse Java Basics - Anfänger-Themen 9
S Objekte indiziert erstellen Java Basics - Anfänger-Themen 27
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
M Objekte mittels equals vergleichen Java Basics - Anfänger-Themen 14
C Fernseher-Aufgabe (Methoden, Klassen und Objekte) Java Basics - Anfänger-Themen 63
N Typebound Objekte einer Arraylist hinzufügen Java Basics - Anfänger-Themen 7
A (Objekte Java Basics - Anfänger-Themen 6
Y Klassen Klassen und Objekte Java Basics - Anfänger-Themen 3
Y Klassen Klassen und Objekte mit set und get Java Basics - Anfänger-Themen 0
U Objekte in einer LinkedList sortieren Java Basics - Anfänger-Themen 5
N Methode um Objekte einer Liste hinzuzufügen Java Basics - Anfänger-Themen 1
G Java Objekte auf Duplikate testen Java Basics - Anfänger-Themen 4
B Neue Liste erstellen, wenn Objekte bestimmte Referenz hat / Gruppierung von Einträgen Java Basics - Anfänger-Themen 12
M Implementieren einer Datenstruktur, welche nur 5 Objekte speichert Java Basics - Anfänger-Themen 3
M Objekte miteinander vergleichen Java Basics - Anfänger-Themen 18
C Verschiedene Objekte in einer Liste speichern Java Basics - Anfänger-Themen 6
J Java GUI- Objekte Position per Quelltext bestimmen Java Basics - Anfänger-Themen 4
G Objekte in Methoden? Java Basics - Anfänger-Themen 13
H Auf Objekte bzw Variabeln aus einer anderen Methode zugreifen Java Basics - Anfänger-Themen 7
S Frage Klasse und Objekte Java Basics - Anfänger-Themen 2
K Boolean in einer Methode um 2 Objekte zu vergleichen Java Basics - Anfänger-Themen 12
I Objekte Hilfe Java Basics - Anfänger-Themen 8
G Klassen und Objekte Java Basics - Anfänger-Themen 2
W Verschachtelte Objekte wieder auspacken Java Basics - Anfänger-Themen 3
R Attribute mehrerer Objekte ausgeben Java Basics - Anfänger-Themen 3
C Objekte und Konstruktoren Java Basics - Anfänger-Themen 2
F Erstellen zweier Objekte mit dem selben Inhalt Java Basics - Anfänger-Themen 1
O ObjectOutputStream Anzahl Objekte festhalten Java Basics - Anfänger-Themen 17
X Objekte einer ArrayList richtig ausgeben? Java Basics - Anfänger-Themen 8
J Best Practice Dateiinhalte validieren und auf Objekte mappen Java Basics - Anfänger-Themen 3
B Automatisch Objekte erzeugen mit verschiedenen Namen Java Basics - Anfänger-Themen 4
der_Schokomuffin Hilfe gesucht beim Thema Objekte übergeben! Java Basics - Anfänger-Themen 2
S Konstruktor, Objekte Java Basics - Anfänger-Themen 4
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
PaperHat Programmieraufgabe - Objekte in Objekten Java Basics - Anfänger-Themen 2
E Methode mit Parametern um Objekte zu übergeben Java Basics - Anfänger-Themen 4
V Collections Objekte einer ArrayList in der main() ausgeben Java Basics - Anfänger-Themen 9
T Klassen Klassenübergreifende Objekte erstellen lassen Java Basics - Anfänger-Themen 5
A Objekte verknüpfen Java Basics - Anfänger-Themen 2
M Objekte mit einer Schleife mehrmals erzeugen Java Basics - Anfänger-Themen 17
B Klassen Alle Unter-Objekte durchlaufen in der Hauptklasse Java Basics - Anfänger-Themen 10
B Objekte zählen/ Vererbung/ Kopplung/ Interface/ Abstract Class Java Basics - Anfänger-Themen 5
S Zählen der Zeiger auf Objekte Java Basics - Anfänger-Themen 35
J Methoden Equals Methode für Integer und Objekte überschreiben? Java Basics - Anfänger-Themen 9
B Erste Schritte Objekte von JFrame der Fenstergröße anpassen Java Basics - Anfänger-Themen 3
M Klassen und Objekte Java Basics - Anfänger-Themen 2
J Objekte und Abstrakte Klassen Java Basics - Anfänger-Themen 2
H Interface Objekte speichern und laden (serialisieren/deserialisieren) Java Basics - Anfänger-Themen 1
X Objekte in ArrayList einfügen Java Basics - Anfänger-Themen 10
L Vorherige Objekte zählen und ausgeben Java Basics - Anfänger-Themen 11
Orkanson Objekte und Klassen Java Basics - Anfänger-Themen 8
R Objekte zur Laufzeit in Schleife erzeugen und in ArrayList ablegen Java Basics - Anfänger-Themen 4
D Objekte-Fragen Java Basics - Anfänger-Themen 1
T Objekte in der Methode Java Basics - Anfänger-Themen 8
F Alle Objekte einer Klasse nach Eigenschaft durchsuchen Java Basics - Anfänger-Themen 8
R Interface Eigene Objekte in Listen sortieren mit Interface Comparable Java Basics - Anfänger-Themen 5
E Eine Instanzvariable und zwei Objekte Java Basics - Anfänger-Themen 14
N Objekte in ArrayList finden Java Basics - Anfänger-Themen 10
R getrennte Objekte aus Klasse erstellen : warum Inhalt dann gleich ? Java Basics - Anfänger-Themen 2
T Objekte in Listen vererben Java Basics - Anfänger-Themen 3
E Methoden Objekte in Methode aufrufen ohne getter und setter? Java Basics - Anfänger-Themen 1
A Variablen In anderer Klasse auf Objekte von JFrame zugreifen Java Basics - Anfänger-Themen 1
R Objekte Vergleichen und Sortieren Java Basics - Anfänger-Themen 3
BobbGott Klassen 2 "Objekte" in einer Methode - wie? Java Basics - Anfänger-Themen 7
S Objekte mit gleichem Namen in unterschiedlichen Klassen Java Basics - Anfänger-Themen 3
S Objekte "gegebenfalls" erzeugen Java Basics - Anfänger-Themen 5
F Klassen Zugriff auf verschachtelte Objekte Java Basics - Anfänger-Themen 11
H Objekt überschreibt Variablen vorheriger Objekte Java Basics - Anfänger-Themen 2
snipesss Objekte Java Basics - Anfänger-Themen 14
tuc Erste Schritte verschiedene objekte in einem feld speichern Java Basics - Anfänger-Themen 4
J Objekte in einer Liste Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Anzeige

Neue Themen


Oben