Ich habe zu Testzwecken mein Programm im Debugmodus gestartet und für jede Anfrage nacheinander folgende Werte in der Console übermittelt: 2, 10, 30, 40, 70.
Als ich die while Schleife zeilenweise durchlaufen bin, konnte ich im ersten durchlauf sehen im variables view des debuggers sehen, dass die Einträge 10 und 30 korrekt überall eingetragen wurden.
Im 2. durchlauf der Schleife konnte ich nun sehen, dass nach dem einlesen aus der Console die 2. x Koordinate nun auch im 0. Eintrag des Arrays eingetragen wurde; die 10 wurde also überschrieben und auf 40 gesetzt. Mit der y Koordinate das gleiche Phänomen.
in der Zeile
wurden dann auch die Werte 40 und 70 im 1. Eintrag des Arrays eingetragen.
Doch warum wird der 0. Array Eintrag überschrieben?
Und was kann ich zur Fehlerbehebung tun?
Ich möchte das mein Programm viele verschiedene Koordinaten in einem Array speichert.
Programmtext:
Als ich die while Schleife zeilenweise durchlaufen bin, konnte ich im ersten durchlauf sehen im variables view des debuggers sehen, dass die Einträge 10 und 30 korrekt überall eingetragen wurden.
Im 2. durchlauf der Schleife konnte ich nun sehen, dass nach dem einlesen aus der Console die 2. x Koordinate nun auch im 0. Eintrag des Arrays eingetragen wurde; die 10 wurde also überschrieben und auf 40 gesetzt. Mit der y Koordinate das gleiche Phänomen.
in der Zeile
Java:
coordinates[i] = coordinate;
Doch warum wird der 0. Array Eintrag überschrieben?
Und was kann ich zur Fehlerbehebung tun?
Ich möchte das mein Programm viele verschiedene Koordinaten in einem Array speichert.
Programmtext:
Java:
package aufgabe.eins;
import java.util.Scanner;
public class SortPoints {
public static void main(String[] args) {
Point2D[] coordinates;
Point2D coordinate = new Point2D();
System.out.print("Anzahl an Koordinaten:");
Scanner scanner = new Scanner(System.in);
int anzahl = scanner.nextInt();
coordinates = new Point2D[anzahl];
int i=0;
while(i < anzahl){
System.out.print("x-Koordinate Punkt " + i +":");
coordinate.setX(scanner.nextDouble());
System.out.print("y-Koordinate Punkt " + i +":");
coordinate.setY(scanner.nextDouble());
coordinates[i]= coordinate;
i++;
}
}
}
package aufgabe.eins;
public class Point2D {
private double x;
private double y;
Point2D(){
}
public double getX() {
return x;
}
public void setX(double x) {
this.x = x;
}
public double getY() {
return y;
}
public void setY(double y) {
this.y = y;
}
}
Zuletzt bearbeitet: