So wie du es bisher schon machst
Das Problem ist, daß du in der main-Methode ein eigenes lokales Feld deklarierst.
Code:
String[] feld = new String[9];
Schreib einfach
Code:
feld = new String[9];
Dann wird auf das "äußere" feld Bezug genommen.
Zweitens sind alle deine Methoden (main sowiese) static, beziehen sich also auf
die Klasse, während deine Deklaration am Anfang nicht-static ist; diese Variable
also nur in einer Instanz deiner Klasse existiert.
Je nachdem was du haben willst, gibt es also zwei Lösungen:
Statisch:
Code:
class arr
{
public static String[] feld;
public static void ausgeben()
{
for(int i=1;i<9;i++)
{
System.out.println(feld[i]);
}
}
public static void init()
{
for(int i=1;i<9;i++)
{
feld[i]="1";
}
}
public static void main(String[] args)
{
feld = new String[9];
init();
ausgeben();
}
}
Aber dann hast du nur ein einziges feld im gesamten Programm. Was du wohl eher meinst ist:
Code:
class Arr
{
public String[] feld;
public void ausgeben()
{
for(int i=1;i<9;i++)
{
System.out.println(feld[i]);
}
}
public void init()
{
for(int i=1;i<9;i++)
{
feld[i]="1";
}
}
public static void main(String[] args)
{
Arr myArr = new Arr();
arr.feld = new String[9];
arr.init();
arr.ausgeben();
}
}
Vorschlag: Ein bischen mehr in einem Tutorial die Grundbegriffe von Klassen, Instanzen, Instanzvariablen...
erarbeiten:
Also :### ???:L testen, :### ???:L testen, :### ???:L testen