Komplexeres array Speicherproblem bzw. Ausgabeproblem

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,
habe folgendes ich lese von einem kunden die daten ein, diese sollen dann in einem array gespeichert werden.
Und anschließend wieder ausgegeben werden.

Also erste methode die aufgerufen wird:
Code:
public Stammkunde createStammkunde() throws IOException { 
        Stammkunde stammkunde = new Stammkunde();
        this.liesStammKunde(stammkunde);
        return stammkunde; 
    }

dann diese:
Code:
public void liesStammKunde(Stammkunde stammkunde) throws IOException {
        this.liesKunde(stammkunde);
        
    }

und dann die eigentliche ...
Code:
public void liesKunde(Kunde kunde) throws IOException 
    {
        //Prüfen der Kundennummer, da zwingend erforderlich
        int kdnr = 0;
        while (kdnr == 0) {
            try {
                System.out.println("Kundennummer:");
                        kdnr = MeineEingabe.erfasseInt();
                } catch (NumberFormatException exp) { 
                System.out.println ("\nBitte geben Sie einer Kundennummer ein!");  
            }//end of try-catch
        }//end of while
        kunde.setKundennummer(kdnr);
        
        System.out.println("Name:");
        kunde.setName(MeineEingabe.erfasseText());
        
        System.out.println("Vorname:");
        kunde.setVorname(MeineEingabe.erfasseText());
        
        this.liesAnschrift(kunde);    
    }

dann wird die anschrift eingelesen

Code:
public void liesAnschrift(Kunde kunde) throws IOException { 
        //Anschrift anschr = new Anschrift();
        
        System.out.println("Wie lautet die Strasse der Person?"); 
        String strasse = MeineEingabe.erfasseText();      
        
        System.out.println("Wie lautet die Hausnummer?"); 
        String hausnummer = MeineEingabe.erfasseText(); 
        
        int plz = 0;
        try {
                System.out.println("Wie lautet die Postleitzahl?");
                plz = MeineEingabe.erfasseInt();
                } catch (NumberFormatException exp) {   
            }//end of try-catch      

        System.out.println("Wie lautet der Ort?"); 
        String ort = MeineEingabe.erfasseText();
        
        kunde.setAddress(strasse, hausnummer, plz, ort);
         
    } //end of method liesAnschrift()

dann wird die adresse gesetzt
Code:
public void setAddress(String street,String h_Nr,int postleitzahl,String ortschaft) 
    {
        anschrift = new Anschrift(street, h_Nr, postleitzahl, ortschaft); 
    }
Code:
public class Anschrift { 
        private String strasse;  
        private String hausNr; 
        private int plz; 
        private String ort; 
     
        public Anschrift(String street,String h_Nr,int postleitzahl,String ortschaft) { 
            strasse = street; 
            hausNr = h_Nr; 
            plz = postleitzahl; 
            ort = ortschaft; 
        } // end of Konstruktor mit Parameter
        
        private Anschrift() {
            this.strasse = null;
            this.hausNr = null;
            this.plz = 0;
            this.ort = null;
        }
        
        public void setStrasse(String strasse) 
        {
            this.strasse = strasse;
        }
        public void setHausNr(String hausNr) 
        {
            this.hausNr = hausNr;
        }
        public void setPlz(int plz) 
        {
            this.plz = plz;
        }
        public void setOrt(String ort) 
        {
            this.ort = ort;
        }
        //implizite vaterklasse ist object nur bei klassen ohne extends 
        //wird automatisch bei einer print methode aufgrufen (printKunde)
        public String toString() { 
            return strasse + " " + hausNr + " " + plz + " " + ort; 
        } 
        
    } //end of class anschrift

Dann sollte der Kunde ja in dem Array gespeichert sein...
jedoch wenn ich folgende methode aufrufe gibt er mir "0" aus???

Code:
public void printStammKunde() throws IOException {
        
        System.out.println("Kundennummer: ");
        int wert = MeineEingabe.erfasseInt();
             
        for (int i = 0; i < stammkundeFeld.length; i++)  {
            System.out.println(stammkundeFeld[i].kunde.kundennummer);
            //if (stammkundeFeld[i].kunde.kundennummer == wert)
            //    stammkundeFeld[i].schreibeStammkunde();
            //else 
            //    System.out.println("Kein Stammkunde mir dieser Kundennummer vorhanden!");
        }// enf of for
         
    } //end of method printStammKunde()


Also iorgendwie muss er das Objekt noch nicht richtig im array speichern.

Hat einer ne Ahnung?
 

Wildcard

Top Contributor
Code:
System.out.println(stammkundeFeld[i].kunde.kundennummer);
Wenn dabei "0" erscheint ist die Kundennummer.... was wohl? :wink:
 
G

Guest

Gast
nach dem debugger stehen die werte in dem array alle unter "Inheritet"
und da kann ich bei der ausgabe nicht drauf zugreifen.
 
G

Guest

Gast
Wildcard hat gesagt.:
Code:
System.out.println(stammkundeFeld[i].kunde.kundennummer);
Wenn dabei "0" erscheint ist die Kundennummer.... was wohl? :wink:

nein leider nicht, habe ne andere kundennummer eingegeben!
 

Murray

Top Contributor
Kannst du mal die Klassen Kunde und Stammkunde posten (zumindest die Deklarationen der Membervariablen sowie die Methode setKundennummer, ganz besonders, wenn diese Methode in beiden Klassen iimplementiert wird)?
 
G

Guest

Gast
Also sie schaut im mom die klasse Stammkunde aus:
Code:
class Stammkunde extends Kunde {

    private String geburtstag;
    private boolean rabatt;
    Kunde kunde = new Kunde();

    //Default Konstruktor
    /*
    public Stammkunde() {
        super(); //Aufruf des Konstruktors der Vaterklasse 
    }
    */
    //Konstruktor mit Parametern
    /*
    public Stammkunde(String geb, boolean rabatt) {
        this.rabatt = rabatt;
        this.geburtstag = geb;
    }
    */
    
    public String getGeburtstag () {
        return geburtstag;
    }

     
    public void setGeburtstag (String val) {
        this.geburtstag = val;
    }

    
    public boolean getRabatt () {
        return rabatt;
    }

    
    public void setRabatt (boolean val) {
        this.rabatt = val;
    }
    
    void schreibeStammkunde() {
        kunde.schreibeKunden(); 
        System.out.println(geburtstag + " " + rabatt);
    }
    
}

und so die dekleration der membervariablen, in der klasse kunde:
Code:
class Kunde {
    private int kundennummer;
    private String vorname;
    private String name;
    private Kunde[] kundenFeld;
    private Stammkunde[] stammkundeFeld;
    
    protected Anschrift anschrift;
 

Murray

Top Contributor
Dein Stammkunde enthält jetzt alle Merkmale von Kunde zweimal - einmal ererbt, und dann nochmal in seiner Instanzvariablen Kunde.

Code:
Stammkunde stammkunde = new Stammkunde();
stammkunde.kundennummer =  1234;
stammkunde.kunde.kundennummer = 4321;

In diesem Fall ist die Ableitungsbeziehung wohl ausreichend; verzichte lieber auf die Instanzvariable kunde innerhalb von Stammkunde

Code:
class Stammkunde extends Kunde {

    private String geburtstag;
    private boolean rabatt;

    public Stammkunde() {
      this( null, false); //--- EDIT: hier stand rabatt
    }
  
    public Stammkunde(String geb, boolean rabatt) {
        super();
        this.rabatt = rabatt;
        this.geburtstag = geb;
    }

   
    public String getGeburtstag () {
        return geburtstag;
    }

     
    public void setGeburtstag (String val) {
        this.geburtstag = val;
    }

   
    public boolean getRabatt () {
        return rabatt;
    }

   
    public void setRabatt (boolean val) {
        this.rabatt = val;
    }
   
    void schreibeKunde() {
        super.schreibeKunden();
        System.out.println(geburtstag + " " + rabatt);
    }
   
}

Warum hast du in der Klasse Kunde noch die Instanzvariablen kundenFeld und stammkundeFeld?


//EDIT: Fehler im Konstruktor behoben
 
G

Guest

Gast
was macht denn der konstruktor?
Code:
public Stammkunde() {
      this( null, rabatt);
    }
funktioniert bei mir so nicht.
Es heißt: cannot reverence rabatt before supertype constructor has been called.

wieso kundenFeld und stammKundenFeld nicht als instanzvariable?
Soll ich sie lieber lokal deklarieren?
 

Murray

Top Contributor
Anonymous hat gesagt.:
was macht denn der konstruktor?
Code:
public Stammkunde() {
      this( null, rabatt);
    }
funktioniert bei mir so nicht.
Es heißt: cannot reverence rabatt before supertype constructor has been called.
Sorry, mein Fehler. Habe ich oben korrigiert.

Anonymous hat gesagt.:
wieso kundenFeld und stammKundenFeld nicht als instanzvariable?
Soll ich sie lieber lokal deklarieren?
Die Klassen Kunde und Stammkunde sollten nur das enthalten, wofür sie ihrer Namen nach stehen, nämlich Eigenschaften eines Kunden bzw. eines Stammkunden sowie Operationen, die sich auf diese Objekt beziehen.

Wenn du eine Kundenverwaltung programmierst (also ein Programm, welches mit einer Menge von Kunden und Stammkunden umgeht), dann packe den Code lieber in (mindestens) eine eigene Klasse. Und dort kann ich mir wiederum gut vorstellen, dass man dort eine Liste von Kunden (notfalls auch ein Array) als Instanzvariable hat.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Fynn29 Liste sortieren ohne Array und ohne vorgegebene Sortierung Allgemeine Java-Themen 24
LucasGlockner Effizienter byte-Zugriff auf ein long[]-Array Allgemeine Java-Themen 8
8u3631984 Frage Performance bei Linked List und Array List Allgemeine Java-Themen 5
M Queue mit einem Array implemetieren Allgemeine Java-Themen 16
M Array Rang eines Elements Allgemeine Java-Themen 4
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
TheSepp Wie kann man Leerzeichen aus einer Array liste entfernen? Allgemeine Java-Themen 10
B HeapSort für Array of Strings funktioniert nur teilweise Allgemeine Java-Themen 3
noah1407 Array Allgemeine Java-Themen 3
D Methoden Teil-Array mit Maximalwert bestimmen Allgemeine Java-Themen 23
N einem Array Objekte hinzufügen die ihr Array position gespeichert haben Allgemeine Java-Themen 34
N zweidimensionalen Array in dreidimensionalen Array speichern Allgemeine Java-Themen 4
N Schnellste Methode, ein Array durchzugehen? Allgemeine Java-Themen 9
T Objekt Array Aufgabe mit Busdatenbank Allgemeine Java-Themen 2
L Array und Index Allgemeine Java-Themen 26
L die 3 größten Zahlen im Array Allgemeine Java-Themen 1
G jToggleButton in Array/ArrayList Allgemeine Java-Themen 12
S Übergabe eines Sortierkriteriums für ein Artikel Array mittels BiPredicate<Artikel, Artikel> Allgemeine Java-Themen 13
Willi.We Array sortieren Allgemeine Java-Themen 5
gotzi242 Array Summe bestimmen tipps? Allgemeine Java-Themen 14
H Matrix ohne Array erstellen Allgemeine Java-Themen 9
Aboya Char Array rekursiv vergleichen Allgemeine Java-Themen 15
V4ll3.Wff Array in Java Allgemeine Java-Themen 4
Noahscript Aus einem byte Array Steuerungszeichen und Code bekommen und ersetzen Allgemeine Java-Themen 3
H Array Sportschütze Allgemeine Java-Themen 6
Sumo_ow "ArrayIndexOutofBoundsException: 2" Array Problem Allgemeine Java-Themen 6
xGh0st2014 Problem mit Java Array Allgemeine Java-Themen 1
M Array verändern Allgemeine Java-Themen 1
A JavaFX 2 dimensionales array Allgemeine Java-Themen 1
LimDul Direktes return eines Array geht nicht Allgemeine Java-Themen 20
S Array dynamisieren oder ArrayList verwenden? Allgemeine Java-Themen 17
M Java 2D Array für ein Grid erstellen ? Allgemeine Java-Themen 2
H Array mit dem Datentype String[] initializieren Allgemeine Java-Themen 7
L ArrayList mit String Arrays in ein Array umwandeln Allgemeine Java-Themen 1
H Elemente aus ArrayList in Array speichern Allgemeine Java-Themen 8
E Datentypen Wie kann ich die Längen der unterschiedlichen Ebenen aus einem Objekt lesen von dem ich weiß, dass es ein mehrdimensionaler Array ist? Allgemeine Java-Themen 3
N Byte Array in Java "dekomprimieren" Allgemeine Java-Themen 3
parrot Array Aufgabe Allgemeine Java-Themen 3
N String Array Eingabe Allgemeine Java-Themen 6
R Warum wird mir in der Konsole das "Standard Array" ausgegeben? Allgemeine Java-Themen 2
N Variablen Array Länge ändern. Allgemeine Java-Themen 8
D Kgv aller Paare aus einem Array mit n integer berechnen Allgemeine Java-Themen 5
W Enumeration ein Array/List als Eigenschaft mitgeben - warum geht das nicht? Allgemeine Java-Themen 0
kodela Problem mit strukturiertem Array Allgemeine Java-Themen 18
A Array Problem Allgemeine Java-Themen 8
Drachenbauer Wie stelle ich fest, ob ein Objekt in meinem Array vorkommt? Allgemeine Java-Themen 5
F Datei in String-Array einlesen Allgemeine Java-Themen 8
L Objekt aus Objekt-array "löschen" Allgemeine Java-Themen 2
I Array Parameter mit 2 Klassen - NullPointerException Allgemeine Java-Themen 3
X Größten Werte in meinem Array löschen? Allgemeine Java-Themen 16
E Angabe wie groß Array sein soll und in for-schleifen diesen Array füllen Allgemeine Java-Themen 3
F 3 Dimensionales Array mit Allgemeine Java-Themen 9
M Steueralgorithmus verwandelt Array in Anfangszustand Allgemeine Java-Themen 9
W Array vs. ArrayList vs. HashMap Allgemeine Java-Themen 20
D Datentypen 2-3 Baum erstellen mit geordnetem int-array Allgemeine Java-Themen 0
T Objekt in Array packen Allgemeine Java-Themen 6
M Zahlen in Array anordnen Allgemeine Java-Themen 8
M Eclipse Unvollständigen Array ansteuern Allgemeine Java-Themen 2
D Erste Schritte Im Array Werte tauschen Allgemeine Java-Themen 5
Xge For/Array Error: IndexOutOfBounds Allgemeine Java-Themen 4
M Wie kann ich ein int[] Array in einer Methode benutzen? Allgemeine Java-Themen 6
FRI3ND Datentypen Date-Array sortieren - Text mitnehmen? Allgemeine Java-Themen 7
D Integer-Array variabler Größe mit Zahlen befüllen (Schleifen) Allgemeine Java-Themen 0
J Variablen Array ertellen bei model.put Allgemeine Java-Themen 13
S Eindimensionales Array in zweidimensionales Array speichern Allgemeine Java-Themen 5
R convert 2d array list to 2d array Allgemeine Java-Themen 1
J json Array würfel Spalten durcheinander Allgemeine Java-Themen 9
MiMa Array umbau oder Alternative? Allgemeine Java-Themen 5
L Datentypen 3D Array Allgemeine Java-Themen 3
M 2D Array mit unterschiedlichen Längen erstellen und befüllen Allgemeine Java-Themen 11
Mario1409 Methoden JSON Array von URL Allgemeine Java-Themen 8
E Swing Array mit Bildern in GUI darstellen Allgemeine Java-Themen 2
P Array einer abstrakten Klasse Allgemeine Java-Themen 4
H Zweidimensionales Array - Zellen der Tabelle verbinden Allgemeine Java-Themen 2
M Zweidimensionales Array mit Binärzahlen füllen Allgemeine Java-Themen 8
M Array aus Thread Objekten erstellen Allgemeine Java-Themen 2
kodela Dynamisches Array in einer Klasse Allgemeine Java-Themen 5
G Array ohne Aufzählungszeichen ausgeben Allgemeine Java-Themen 6
J Wie kann ich ein Java Array als Säulendiagramm ausgeben? Allgemeine Java-Themen 2
Z 2D Array Pixels reparieren Allgemeine Java-Themen 2
S Algorithmus welcher True-Werte in einem Array findet und auswertet. Allgemeine Java-Themen 5
B Polibios Array erweitern Allgemeine Java-Themen 1
R Index in einem Array löschen Allgemeine Java-Themen 10
R Index in einem Array löschen Allgemeine Java-Themen 2
U Methoden Algorithmus MergeSort String [ ] array sortieren programmieren Allgemeine Java-Themen 17
J Array-List Bubble-Sort Allgemeine Java-Themen 12
4 Variablen Int-Array Int Zuweisen Allgemeine Java-Themen 7
J Array Allgemeine Java-Themen 8
Z Array mit unterschiedlichen Werten Allgemeine Java-Themen 1
L sortiertes Array im main aufrufen klappt nicht. Allgemeine Java-Themen 3
O Mein JButton Array funktioniert nicht Allgemeine Java-Themen 3
A Mit dem letzten bis zum ersten Wert aus Array rechnen Allgemeine Java-Themen 15
A Vector Strings in Array splitten Allgemeine Java-Themen 6
I Muster in Array suchen Allgemeine Java-Themen 10
RalleYTN Datentypen Herausfinden ob Object ein Array ist ohne den Typen des Arrays zu kennen? Allgemeine Java-Themen 12
S Variablen String[] Array per schleife in int[] einlesen Allgemeine Java-Themen 8
B Zahlen manuell eingeben und in Array Speichern Allgemeine Java-Themen 2
R Wärmeleitung, 3d-Array Allgemeine Java-Themen 2
T Java Array in Methoden Allgemeine Java-Themen 1
D Erste Schritte Array von einer forschleife nach ausserhalb trasferieren Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben