Variablenproblem

AnkeBegin

Mitglied
Hallo zusammen,

ich verzweifle!
Kurzes Problem, welches mir aber seit zwei Stunden den Nerv raubt:

Java:
private static int[][] ships = {
  {1, 5},  // Schlachtschiff
  {2, 4},  // Kreuzer
  {3, 3},  // Zerstoerer
  {4, 2},  // U-Boote
};

private static void minusShip(int number, int[][] ship) {
  int i = 0;
  for (i = 0; i < ship.length; i++) {
    if (ship[1] == number) {
      ship[0]--;
    }
  }
}

public static void setShip(){
  int shipsTemp[][] = ships;
  ...
  ...
  minusShip(counter, shipsTemp);
}

Die Frage: meine lokale Variable shipsTemp beeinflusst beim Verändern der Werte auch die private ships Variable. Wie kann das sein? Sehe ich den Wald vor lauter Bäumen nicht?
Bitte um Hilfe :(

Viele Grüße

Anke
 
K

kneitzel

Gast
Ein Array ist eine Referenz und wenn Du tempShips = ships zuweist, dann ist in beiden Variablen die gleiche Referenz. Arrays verhalten sich somit bezüglich Zuweisung wie Instanzen von Objekten.

Konrad
 
K

kneitzel

Gast
Also ich weiss nicht, was Du genau machen willst. Wenn Du eine Kopie von einem Array haben willst, dann musst Du ein neues Array anlegen und die Werte kopieren.
Dies kannst Du entweder selbst über eine Schleife machen oder Du nutzt System.arraycopy.

Konrad
 
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben