Array Objekt wird überschrieben

Doom Mortal

Mitglied
Guten Tag allerseits ich bin noch Java neuling und komme bei einem bestimmten Problem nicht weiter. Ich hoffe jemand kann mir helfen.
Ich möchte Objekte erstellen die ich anschließend in ein Array übertrage. Das Problem ist das dass vorherige Objekt im Array an der Position [0], mit den Werten "Max Mustermann" mit dem Objekt mit der Position [1] und den Werten "Susi Sorglos" überschrieben wird. Das heißt das dass erste Objekt im ersten Array mit dem Objekt im zweiten Array überschrieben worden ist. Wie kann das sein? Ich weiß nicht weiter.

Vielen dank schonmal im Vorraus.

Meine Anwendungsklasse sieht wie folgt aus:
Java:
import schule.Schueler;
import javax.swing.*;


public class Test{
  private static Schueler[] myArray = new Schueler[2];
  
  
  public static void main(String[] args) {
    
    myArray[0] = new Schueler("Max", "Mustermann");
    myArray[1] = new Schueler("Susi", "Sorglos");
    
    JOptionPane.showMessageDialog(null, myArray[0].getVorname());
  }
}


und meine Fachklasse sieht so aus:
Java:
package schule;


public class Schueler{
  private static String vorname;
  private static String nachname;
  
  public Schueler(String sVorname, String sNachname) {
    this.vorname = sVorname;
    this.nachname = sNachname;  
  }
  
  public static String getVorname() {
    
    return vorname; 
    
  }
}
 
Das hier ist das Problem:
Java:
private static String vorname;
private static String nachname;
Als statische Klassenvariablen überschreibst du sie bei jedem Aufruf des Konstruktors. Da dein letzter Aufruf mit Susi ist, ist das auch der aktuelle Wert der Klassenvariablen.
Nimm dafür Instanzvariablen (also ohne Schlüsselwort static).
 

Zurück
Oben