Objekte in einer Liste

JavaAnfänger72

Aktives Mitglied
Hallo allerseits, ich versuche ein Programm zu Archivierung von CD's zu schreiben.
Das Programm besteht aus einer Klasse CdListe{} und einer Inneren Klasse Cd{}.
Diese beiden Klassen sind vorgegeben.
Der Konstruktor der äußeren Klasse fragt über die Konsole einen Namen und die Anzahl der zu archivierenden Cd's ab. Anschließend wird im Konstruktor der Klasse CdListe{} der Konstruktor der Klasse Cd{} aufgerufen. Der Konstruktor der Klasse
Cd{} erzeugt je nach Angabe CdObjekte und hängt diese in liste1 ein.
Nun zu mein Problem, alle Stellen der Liste liste1 werden mit dem Selben Objekt überschrieben, dies verstehe ich nicht.
Beispiel:
Bitte geben Sie den Namen der zu erstellenden CdListe ein:
Klassik
Bitte geben Sie die Anzahl der Cd's ein die Sie archivieren wollen:
2
Bitte geben Sie den Namen der Cd ein:
Oxygene
Bitte geben sie den Namen des Künstlers ein:
Jean Michel Jarre
Bitte geben Sie das Erscheinungsjahr ein:
1972
Bitte geben Sie den Namen der Cd ein:
CHRONOLOGIE
Bitte geben sie den Namen des Künstlers ein:
Jean Michel Jarre
Bitte geben Sie das Erscheinungsjahr ein:
1994
Die Ausgabe der Liste liste1 für zu folgendem Ergebnis:
Titel: CHRONOLOGIE Künstler: Jean Michel Jarre Jahr: 1994
Titel: CHRONOLOGIE Künstler: Jean Michel Jarre Jahr: 1994

Warum werden beide Felder mit demselben Objekt überschieben?
Ich würde gerne folgende Ausgabe erreichen und hätte diese auch erwartet:
Titel: Oxygene Künstler: Jean Michel Jarre Jahr: 1972
Titel: CHRONOLOGIE Künstler: Jean Michel Jarre Jahr: 1994

Danke für jede Antwort!

Hier der Code:

Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;

public class CdListe {

    static String archivTitle;
    static String cdTitle;
    static String kuenstler;
    static int jahr;
    static Scanner eingabe = new Scanner(System.in);

    static int maxAnzahl;
    static int maxAnzahlNeu;

    static Cd [] liste1 = new Cd [maxAnzahl];

    class Cd { // Innere Klasse
    
        public Cd () { // Konstruktor der inneren Klasse 
            System.out.println("Bitte geben Sie den Namen der Cd ein: ");
            InputStreamReader read = new InputStreamReader(System.in);
            BufferedReader buff1 = new BufferedReader(read);
            try{
                cdTitle = buff1.readLine();
            }
            catch (IOException e){
                e.fillInStackTrace();
            }
            System.out.println("Bitte geben sie den Namen des Künstlers ein: ");
            BufferedReader buff2 = new BufferedReader(read);
            try{
                kuenstler = buff2.readLine();
            }
            catch (IOException e){
                e.fillInStackTrace();
            }
            System.out.println("Bitte geben Sie das Erscheinungsjahr ein: ");
            jahr = eingabe.nextInt();
        }
    
    
        String getArchivTitle(){
            return archivTitle;
        }
    
        String getCdTitle(){
            return cdTitle;
        }
    
        String getKuenstler(){
            return kuenstler;
        }
    
        int getJahr(){
            return jahr;
        }
    
    }

    CdListe (){ // Konstruktor der äußeren Klasse
        System.out.println("Bitte geben Sie den Namen der zu erstellenden CdListe ein: ");
        InputStreamReader read = new InputStreamReader(System.in);
        BufferedReader buff = new BufferedReader(read);
        try{
            archivTitle = buff.readLine();
        }
        catch (IOException e){
            e.printStackTrace();
        }
        System.out.println("Bitte geben Sie die Anzahl der Cd's ein die Sie archivieren wollen: ");
        maxAnzahl = eingabe.nextInt();
    
        for (int i = 0; i < maxAnzahl; i++) {
            CdListe.Cd cd = new Cd();
            CdListe.liste1[i] = cd;
        }
    }


    static void cdListeAusgabe(){
        for (int i = 0; i < CdListe.liste1.length; i++) {
            System.out.printf("Titel: %s Künstler: %s Jahr: %d\n", CdListe.liste1[i].getCdTitle(), CdListe.liste1[i].getKuenstler(), CdListe.liste1[i].getJahr());
        
        }
        return;
    }

}
 
Zuletzt bearbeitet von einem Moderator:

VfL_Freak

Top Contributor
Moin,

ziemlich schwer, den Code zu durchblicken !!
* warum innere und äußere Klasse ?
*es ist grundsätzlich kleine gute Idee, derartige Logik in die Konstruktoren zu packen!

Dein Problem wird vermutlich hier liegen:
Java:
for( int i = 0; i < maxAnzahl; i++ ) 
{
     CdListe.Cd cd = new Cd();
     CdListe.liste1[i] = cd;
}
Du erzeugst ja in jeden Durchlauf eine neue 'CdListe', was eigentlich nur falsch sein kann!!

Wo wird denn "cdListeAusgabe()" benutzt??
Wirklich nie??
Woher hast Du Deine Ausgabe denn bekommen??

Gruß Klaus
 

Joose

Top Contributor
Dein Problem ist das deine Klasse CD keine eigenen (Instanz)Attribut hat, sondern die statischen Attribute der äußeren Klasse verwendet.
Und diese statischen Attribute existieren genau 1x und sind somit für jedes CD Objekt gleich.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Methode um Objekte einer Liste hinzuzufügen Java Basics - Anfänger-Themen 1
C Verschiedene Objekte in einer Liste speichern Java Basics - Anfänger-Themen 6
I Bestimmte Objekte einer Liste hinzufügen Java Basics - Anfänger-Themen 16
I Objekte einer Liste einer weiteren List anhängen Java Basics - Anfänger-Themen 8
C Mehrere Objekte in einer Liste einfügen und serialisieren Java Basics - Anfänger-Themen 1
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
M Warum dürfen Objekte einer Klasse auf statische Variablen dieser Klasse referenzieren? Java Basics - Anfänger-Themen 10
N Typebound Objekte einer Arraylist hinzufügen Java Basics - Anfänger-Themen 7
U Objekte in einer LinkedList sortieren Java Basics - Anfänger-Themen 5
M Implementieren einer Datenstruktur, welche nur 5 Objekte speichert Java Basics - Anfänger-Themen 3
H Auf Objekte bzw Variabeln aus einer anderen Methode zugreifen Java Basics - Anfänger-Themen 7
K Boolean in einer Methode um 2 Objekte zu vergleichen Java Basics - Anfänger-Themen 12
X Objekte einer ArrayList richtig ausgeben? Java Basics - Anfänger-Themen 8
V Collections Objekte einer ArrayList in der main() ausgeben Java Basics - Anfänger-Themen 9
M Objekte mit einer Schleife mehrmals erzeugen Java Basics - Anfänger-Themen 17
J Array Objekte einer Klasse zuordnen Java Basics - Anfänger-Themen 15
F Alle Objekte einer Klasse nach Eigenschaft durchsuchen Java Basics - Anfänger-Themen 8
BobbGott Klassen 2 "Objekte" in einer Methode - wie? Java Basics - Anfänger-Themen 7
Z OOP Objekte einer Klasse weiteren Klassen zur Verfügung stellen Java Basics - Anfänger-Themen 17
A Objekte einer ArrayList auslesen und auf der Konsole ausgeben Java Basics - Anfänger-Themen 2
M Von einer Klasse aus, Objekte einer anderen Klasse verändern. Java Basics - Anfänger-Themen 2
F Objekte einer Klasse verwalten Java Basics - Anfänger-Themen 10
M Erste Schritte mehrere Objekte aus einer Klasse Java Basics - Anfänger-Themen 4
B OOP Objekte erzeugen mit Hilfe einer for Schleife Java Basics - Anfänger-Themen 29
F Adressverwaltungsprogramm: Objekte einer Klasse in Array Java Basics - Anfänger-Themen 6
M Input/Output Objekte in einer Textdatei ablegen (Highscore) Java Basics - Anfänger-Themen 9
C Methoden Objekte mit Hilfe einer Schleife in einer ArrayList erzeugen Java Basics - Anfänger-Themen 26
C Mehrere Objekte mit einer Methode ausgeben Java Basics - Anfänger-Themen 17
S OOP Foreach für Objekte einer Klasse? Java Basics - Anfänger-Themen 3
S Mehrere Objekte einer Klasse automatisch erzeugen Java Basics - Anfänger-Themen 15
B Objekte aus einer anderen Klasse(in der sich weitere Klassen befinden) erzeugen Java Basics - Anfänger-Themen 24
F Aller Objekte einer Klasse Java Basics - Anfänger-Themen 9
D Erste Schritte Viele Objekte einer Klasse "verwalten" Java Basics - Anfänger-Themen 17
J Klassen Objekte einer Klasse Java Basics - Anfänger-Themen 13
X Collections Reihenfolge bestimmter Objekte in einer ArrayList verändern Java Basics - Anfänger-Themen 2
I OOP Objekte in einer ArrayList Java Basics - Anfänger-Themen 5
K in Konstruktor neue Objekte einer anderen Klasse erzeugen Java Basics - Anfänger-Themen 9
W Objekte in einer Array sortieren Java Basics - Anfänger-Themen 3
O Ungleiche Objekte in einer Schleife erstellen Java Basics - Anfänger-Themen 3
T OOP Objekte einer Klasse mit schleife auslesen Java Basics - Anfänger-Themen 7
L Mehrere Objekte einer Klasse aber nur einmal Konstruktor aufruf? Java Basics - Anfänger-Themen 2
D Wie Objekte einer Unterklasse erstellen? Java Basics - Anfänger-Themen 14
S OOP kann ich von einer Klasse aus auf andere Objekte zugreifen? Java Basics - Anfänger-Themen 7
Semox Sind Objekte in einer ArrayList überschreibbar? Java Basics - Anfänger-Themen 2
J Datensätze aus einer DB als Objekte erzeugen und in ArrayList abspeichern Java Basics - Anfänger-Themen 9
M Objekte aus einer Arraylist löschen Java Basics - Anfänger-Themen 7
T Objekte einer Klasse einer anderen Klasse übergeben Java Basics - Anfänger-Themen 5
A [gelöst]Objekte in einer Schleife erzeugen Java Basics - Anfänger-Themen 9
L Objekte in einer ArrayList vergleichen Java Basics - Anfänger-Themen 19
K Objekte innerhalb einer Klasse Java Basics - Anfänger-Themen 2
G auf Objekte in einer anderen Klasse zugreifen Java Basics - Anfänger-Themen 4
N Verständnisproblem: Mehrere Objekte einer Klasse erstellen Java Basics - Anfänger-Themen 2
H Objekte in einer Hashtable am einfachsten sortieren Java Basics - Anfänger-Themen 13
K Vergleich zweier Objekte in einer HashMap Java Basics - Anfänger-Themen 6
E Zugriff auf Objekte in einer ArrayList Java Basics - Anfänger-Themen 3
P Zugriff auf Objekte einer anderen Klasse Java Basics - Anfänger-Themen 1
J Objekte in einer for schleife referenzieren Java Basics - Anfänger-Themen 7
A auf objekte in einer bereits bestehenden klasse zugreifen Java Basics - Anfänger-Themen 2
B objekte einer klasse. Java Basics - Anfänger-Themen 14
L 2 Objekte einer Klasse Java Basics - Anfänger-Themen 8
J Objekte einer ArrayList in eine Tabelle einfügen Java Basics - Anfänger-Themen 2
B Wie kann ich in einer Schleife Objekte erzeugen? Java Basics - Anfänger-Themen 5
G Objekte in einer Schleife erzeugen Java Basics - Anfänger-Themen 2
C Objekte einer Klasse wiederfinden Java Basics - Anfänger-Themen 4
I Zapier -> wie werden Objekte gespeichert? Java Basics - Anfänger-Themen 10
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
K Hab ich dass so richtig erklärt (Objekte und Referenzen)? Java Basics - Anfänger-Themen 5
J Objekte in JSON speichern?? Java Basics - Anfänger-Themen 1
I Objekte in ShareProject speichern um später zu nutzen Java Basics - Anfänger-Themen 4
J Objekte Java Basics - Anfänger-Themen 22
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
Hzrfa Objekte, Referenz Java Basics - Anfänger-Themen 5
T 3D Objekte verarbeiten Java Basics - Anfänger-Themen 2
N Welche Objekte kann man zu einem Set hinzufügen Java Basics - Anfänger-Themen 4
I XML einlesen und Objekte bekommen Java Basics - Anfänger-Themen 2
Encera Zugriff auf Map-Objekte Java Basics - Anfänger-Themen 3
E Objekte löschen Java Basics - Anfänger-Themen 9
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
Encera Auf Objekte aus anderer Klassen zugreifen Java Basics - Anfänger-Themen 20
P Zähler Variable für mehrere Objekte Java Basics - Anfänger-Themen 6
B Objekte verschwinden beim Übersetzen Java Basics - Anfänger-Themen 5
D Zwei verschiedene Intellij Projekte, wie benutze ich wechselseitig objekte Java Basics - Anfänger-Themen 8
E Rekursiv Objekte erzeugen - geht das? Java Basics - Anfänger-Themen 2
T Collections Sind Subklassen-Objekte in Listen mit Generics erlaubt? Java Basics - Anfänger-Themen 16
F Aus eingelesener Datei korrekt Objekte erzeugen Java Basics - Anfänger-Themen 5
G Übergeordnete Objekte abrufen Java Basics - Anfänger-Themen 9
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
A Objekte mit Parametern in eine Liste packen Java Basics - Anfänger-Themen 19
B Objekte, bspw. konkret Arraylists,manuell aus Speicher löschen? Java Basics - Anfänger-Themen 70
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
D Wie Objekte im JFrame frei bewegen lassen? Java Basics - Anfänger-Themen 3
Spandeli8 Erzeugte Objekte gegenüber Bildern hervorheben in Java Processing Java Basics - Anfänger-Themen 1
J Zwei Objekte vergleichen Java Basics - Anfänger-Themen 8
L Werte von Objekte addieren Java Basics - Anfänger-Themen 14
U Objekte in LinkedList löschen und editieren Java Basics - Anfänger-Themen 14
W Objekte über Scanner Input; ToString Probleme... Java Basics - Anfänger-Themen 4
G Methoden Informationen aus zwei Objekte bekommen? Java Basics - Anfänger-Themen 6
P Globale Objekte Java Basics - Anfänger-Themen 2
C Nachträglich neue grafische Objekte hinzufügen Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben