Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
ich habe zwei Klassen A und B. In Klasse A befindet sich die main methode. Von dort erzeuge ich eine
Klasse (mir fehlen leider die korrekten Bezeichnungen) mit B name = new B();. Weiter wird dann eine Methode methode1() mit name.methode1() aufgerufen. In dieser Methode möchte ich ein zweidimensionales Array anlegen. Das Beschreiben des Arrays soll aber in einer anderen Methode passieren. Meine Frage: Kann ich das Array irgendwie so initialisieren, dass ich innerhalb der Klasse darauf zugreifen kann?
Also:
Java:
class a{
public static void main(String[] args){
B test = new B();
test.method();
}
}
[code=Java]
[code=Java]
class B{
void test(){
int anzahl = In.readInt();
int[][] array = new int[anzahl][anzahl];
}
void beschreiben(){
for(int i = 0; i<3;i++){
int[i][2] = 3;
}
}
[code=Java]
In der Klasse A möchte ich nichts verändern.
Gibt es eine Möglichkeit, auf das Array dann innerhalb von "test" zuzugreifen. Also das Array public zu setzen? Da kommt bei mir nämlich immer eine Fehlermeldung...
Klar kommt ein Fehler. 1) existiert in der Klasse B keine Methode 'method' und 2) kannst du eine Methodenvariable nicht public machen. Mach ne Instanzvariable draus.
Dann sollte dein Array eine Member-Variable sein. Initialisieren kannst du sie mit default-Werten, oder im Konstruktor oder auch mit einer x-beliebigen Methode..
public class a
{
public static void main(String[] args)
{
B test = new B();
test.initialisieren();
test.beschreiben();
}
}
class B
{
int[][] array;
public void initialisieren()
{
array = new int[2][2];
}
public void beschreiben()
{
for(int i = 0; i<2;i++)
{
array [i][0] = i;
System.out.println(array[i][0]);
}
}
}
Das Array wird außerhalb und über den Methoden angelegt.
Dann wird das Array in der Methode initialisiert.
Eine Schleife fehlt noch, so wird ja nur das erste Element in den Arrays geändert.
Wobei das beschreiben ja an sich generell unnötig ist bei einem int[][] weil der Standardwert 0 ist (gilt ja für zwei dimensionale Arrays wie auch bei den einfachen oder?)
Java:
public void beschreiben()
{
for(int i = 0; i < 2; i++)
{
for(int j = 0; j < 2; j++)
{
array[i][j] = i + j;
System.out.println(array[i][j]);
}
}
}