Java Netbeans zeigt Fehler bei der Variablendeklaration

abraxus14

Cadet 4th Year
Registriert
Mai 2007
Beiträge
96
Hallo Mitglieder,

ich möchte eine Klasse in java schreiben und möchte mit den darin enthaltenen Methoden auf die Instanzvariablen zurückreifen. Nur zeigt mir netbeans schon am Anfang ein Fehler an.

Warum? die unten aufgeführten a-Tupel werden von Netbeans als Fehler gewertet.

public class Main {


int[][]a= new int[10][10];

a[5][3]=1;
a[6][4]=1;
a[4][5]=1;
a[5][5]=1;
a[6][5]=1;
 
Welchen Fehler zeigt NetBeans dir denn an?

Entsprechenden Import gemacht? glaube Java.util.* sollte reichen.
 
Zuletzt bearbeitet:
google.de -> Netzbeans zeigt Fehler an

Auch Google bestitzt keine Glaskugel...
 
ich kann zwar kein java, aber sollte es nich int a[][]=... heißen ?
 
public class Main {


int a[][]= new int[10][10];

a[5][3]=1;
a[6][4]=1;
a[4][5]=1;
a[5][5]=1;
a[6][5]=1;

}

ich glaube das wäre so...
 
Zuletzt bearbeitet von einem Moderator: (gelöschter Beitrag wiederhergestellt)
int[][] a müsste genau so richtig sein wie int a[][].
Du hast nur vergessen, zwischen dem int[][] und dem a ein Leerzeichen zu machen.

Gruß Timo
 
also, ob das a jetzt hinten oder vorne steht zeigt keinen Unterschied...
Der Fehler "cannot find Symbol verschwindet nur, wenn man

public static void main(String args[]) {

dazwischen setzt. Warum ist das so??

public class fact {
public static void main(String args[]) {

int a[][]= new int[10][10];

a[5][3]=1;
a[6][4]=1;
a[4][5]=1;
a[5][5]=1;
a[6][5]=1;

}
 
Er will doch eine neue Instanz eines Int-arrays und kein int.

edit.
Achso du möchstest, dass bestimmtes Feld 1 hält.
 
Zuletzt bearbeitet:
edit: zu spät :/

Aus Kompatibilität zum Denken der C-Progammierer sind in Java normalerweise beide Stellen für die eckigen Klammern erlaubt, sowohl hinter dem Typ als auch hinter der Variable. So wie es der TS hat ist es aber üblich für Java-Programmierer.. das was ihr meint ist C-Style.

Neben int[][] a und int a[][] geht sogar int[] a[] für 2dimensionale Arrays.
 
das liegt daran, dass du innerhalb der klassendefinition keine zuweisungen ala a[5][3]=1 machen darfst ;)

z.B. a[5][3]=1 muss innerhalb einer Methode sein!
 
Timmey92 schrieb:
das liegt daran, dass du innerhalb der klassendefinition keine zuweisungen ala a[5][3]=1 machen darfst ;)

z.B. a[5][3]=1 muss innerhalb einer Methode sein!

ah danke!!!!

und wie kann ich nun innerhalb der gleichen Klasse von einer Methode b auf die Zuweisungen in Methode a zurückgreifen??
 
Indem du a als Instanzvariable deklarierst und dann von beliebigen Methoden darauf zugreifen kannst. Aber an dieser Stelle solltest du eigentlich eher icemacs Tipp von oben befolgen, das sind dann doch ziemlich elementare Grundlagen..
 
also innerhalb der klassendefinition und außerhalb von methodendefinitionen darfst du nur objekte deklarieren und initialisieren.
Dazu am besten die von icemac geposteten Links durchlesen ;)
 
carom schrieb:
Neben int[][] a und int a[][] geht sogar int[] a[] für 2dimensionale Arrays.


Gut zu wissen. Hab es mit den anderen zwei Varianten bis her noch nicht ausprobiert bzw. ist die erste wohl am Leserlichsten.
 
So ich habe es mal bei mir in Netbeans probiert und es geht so :

Code:
/**
 *
 * @author Night
 */
public class Array {

    public static void main(String[] args) {

        int a[][] = new int[10][10];


        a[5][3] = 1;
        a[6][4] = 1;
        a[4][5] = 1;
        a[5][5] = 1;
        a[6][5] = 1;


        System.out.println(a[5][3]);



    }
}
 
Naja, jetzt hast du halt alles in eine Methode gepackt (ausgerechnet auch noch main ;) ), ob das das ist, was der TS wollte, werden wir ohne mehr Input allerdings nie erfahren - wobei ich es bezweifle.
 
Zurück
Oben