Array als Attribute eines Objektes

Ibanese

Mitglied
Hallo,

bin gerade dabei Schiffe versenken zu programmieren (is gar ni ma sooo einfach). Ich benutze für die hitFelder der einzelnen Typen (uboot, kreuzer etc.) zweidimensionale Arrays. Aber die lassen sich einfach nicht wie eine normale Eigenschaft benutzen.

Ich weiß, dass Arrays selbst Objekte sind, das macht mich aber nicht schlauer. Ich bin ziemlich ratlos.

Frage:

Ich habe zwei 3 Klassen

Main
Ships ( als Basis für die Schiffstypen)
Uboot, Kreuzer, Schlachtschiff (extends Ships)


Ich möchte nun in der Main Klasse sagen
Code:
uboot.array[i][j] = 1;
geht aber nicht

das Array habe ich in der Uboot Klasse erzeugt mit
Code:
int[][] array = new int[10][10];

Wie kann ich ein Array wie eine normale Eigenschaft nutzen? Ich steige nicht dahinter. War bisher immer nur mit PHP unterwegs, von daher ist Java schon schwerer zu verstehen. Vielen Dank euch im Vorraus:)

Iba
 
Java:
public class Uboot extends Ship { //einzahl, ein Uboot sind ja nicht mehrere Schiffe ;)

private static final WIDTH = 10; //Konstante
private static final HEIGHT = 10;

private int[][] array = new int[WIDTH][HEIGHT];

public void setValue(int x, int y, int value){
   if(x < WIDTH && y < HEIGHT){
       array[x][y] = value;
   }
   else {
       //Fehlermeldung oder so
   }
}

}

In der Main dann:

Java:
public static void main(String [] args){
  Uboot uboot = new Uboot();
  uboot.setValue(0,0,1);
}

Das vermeidet so eine ArrayIndexOutOfBoundsException weil in der setValue Methode geprüft wird ob das möglich ist was du vorhast.
 
Zurück