Hallo,
ich habe ein Problem in Java, welches ich mir leider selbst nicht erklären kann.
Ich habe ein static array in der Main-Methode definiert.
Ich möchte die Werte dieses Feldes an andere Felder in anderen Klassen zuweisen.
Soweit so gut (passiert im Bsp.-Programm über die set-Methode)
Wenn jetzt die 1. TestKlasse eine Veränderung vornimmt wird dies in dem
Feld der Main - Klasse gespeichert bzw. auch geändert! wieso???
Das Feld "startMatrix" hat keinen setter und ist privat.
Ich denke das es evtl. was damit zu tun hat das alles static ist, aber
erschließen kann ich es mir leider nicht
Vielen Dank im vorraus
Beispielcode für das Problem:
ich habe ein Problem in Java, welches ich mir leider selbst nicht erklären kann.
Ich habe ein static array in der Main-Methode definiert.
Ich möchte die Werte dieses Feldes an andere Felder in anderen Klassen zuweisen.
Soweit so gut (passiert im Bsp.-Programm über die set-Methode)
Wenn jetzt die 1. TestKlasse eine Veränderung vornimmt wird dies in dem
Feld der Main - Klasse gespeichert bzw. auch geändert! wieso???
Das Feld "startMatrix" hat keinen setter und ist privat.
Ich denke das es evtl. was damit zu tun hat das alles static ist, aber
erschließen kann ich es mir leider nicht
Vielen Dank im vorraus
Beispielcode für das Problem:
Code:
----------Main Klasse--------
package problem;
public class Main {
private static final int ANZAHLKNOTEN = 16;
private static int[][] startMatrix = new int[ANZAHLKNOTEN][ANZAHLKNOTEN];
private static void ini()
{
startMatrix[0][1] = 3;
startMatrix[0][2] = 5;
startMatrix[0][4] = 6;
startMatrix[1][0] = 3;
startMatrix[1][4] = 4;
startMatrix[2][0] = 5;
startMatrix[2][3] = 2;
startMatrix[2][4] = 5;
startMatrix[3][2] = 2;
startMatrix[3][6] = 5;
startMatrix[4][0] = 6;
startMatrix[4][1] = 4;
startMatrix[4][2] = 5;
startMatrix[4][5] = 4;
startMatrix[4][6] = 3;
startMatrix[4][9] = 4;
startMatrix[5][1] = 4;
startMatrix[5][4] = 4;
startMatrix[5][9] = 4;
startMatrix[6][3] = 5;
startMatrix[6][4] = 3;
startMatrix[6][7] = 8;
startMatrix[6][8] = 3;
startMatrix[6][10] = 6;
startMatrix[7][6] = 8;
startMatrix[7][8] = 5;
startMatrix[7][10] = 3;
startMatrix[7][13] = 5;
startMatrix[7][15] = 12;
startMatrix[8][6] = 3;
startMatrix[8][7] = 5;
startMatrix[8][9] = 6;
startMatrix[8][13] = 5;
startMatrix[9][5] = 4;
startMatrix[9][8] = 6;
startMatrix[10][6] = 6;
startMatrix[11][13] = 5;
startMatrix[12][7] = 5;
startMatrix[12][10] = 5;
startMatrix[12][13] = 8;
startMatrix[12][14] = 3;
startMatrix[12][15] = 11;
startMatrix[13][7] = 5;
startMatrix[13][8] = 5;
startMatrix[13][11] = 5;
startMatrix[13][12] = 8;
startMatrix[14][12] = 3;
startMatrix[14][15] = 7;
startMatrix[15][7] = 12;
startMatrix[15][11] = 5;
startMatrix[15][14] = 7;
}
private static void ausgabe(int[][] matrix)
{
for (int y= 0; y< ANZAHLKNOTEN ; y++)
{
for (int x= 0; x< ANZAHLKNOTEN ; x++)
{
System.out.print(matrix[y][x]< 10 ? " "+matrix[y][x] : " "+matrix[y][x]);
}
System.out.println();
}
System.out.println();
}
public static void main(String[] args) {
ini();
Test1.setMatrix1(startMatrix);
Test2.setMatrix2(startMatrix);
Test1.verändern();
ausgabe(Test1.getMatrix1());
ausgabe(Test2.getMatrix2());
}
}
----------Klasse Test 1--------
package problem;
public class Test1
{
private static final int ANZAHLKNOTEN = 16;
private static int[][] Matrix1 = new int[ANZAHLKNOTEN][ANZAHLKNOTEN];
public static void setMatrix1(int[][] matrix1)
{
Matrix1 = matrix1;
}
public static void verändern()
{
Matrix1[0][0] = 2000;
Matrix1[0][1] = 2000;
Matrix1[1][0] = 2000;
}
public static int[][] getMatrix1() {
return Matrix1;
}
}
----------Klasse Test 2--------
package problem;
public class Test2
{
private static final int ANZAHLKNOTEN = 16;
private static int[][] Matrix2 = new int[ANZAHLKNOTEN][ANZAHLKNOTEN];
public static void setMatrix2(int[][] matrixI)
{
Matrix2 = matrixI;
}
public static int[][] getMatrix2()
{
return Matrix2;
}
}