Methoden methode gibt array bound exeption

toblo

Mitglied
Methode befindet sich in einer Klasse.
Java:
public void winn(int[][] gewonnen){
    if(gewonnen[0][0]==1 && gewonnen[1][0]==1 && gewonnen[2][0]==1){
      this.win = 1;
    }else if(gewonnen[1][0]==1 && gewonnen[1][1] == 1 && gewonnen[1][2]==1){
      this.win = 1;
    }else if(gewonnen[2][0]==1 && gewonnen[2][1] == 1 && gewonnen[2][2] == 1){
      this.win = 1;
...
    }

Der Aufruf der Methode:

Java:
    int[][] donaii = new int[2][2];
    donaii[0][1] = 2;
    don.winn(donaii);
    System.out.println(""+don.getwin());

Fehler:
Exception in thread main java.lang.ArrayIndesOutofBoundsExeption : 2


Wo liegt mein Fehler? (Semantik)
 
G

Gast2

Gast
Dein Array hat keinen Index 2. Du erstellst ein Array dass die Länge 2 hat, also gibts da die Indices 0 und 1.
 

AquaBall

Top Contributor
Java:
    int[][] donaii = new int[2][2];

Java:
    if(gewonnen[2][0] ...

Diese 2 Zeilen passen nicht zusammen!
Überleg, was
Code:
new int[2]
bedeutet, und dann zähl mal mit den Fingern nach.

(Außerdem hast du massenhaft undefinierte Werte in deinem Feld. Solltest dich drum kümmern.)
 
Zuletzt bearbeitet:

AquaBall

Top Contributor
Nee, ich meinte genau das.

Ich hab mir halt angewöhnt, diese Felder zu initialisieren.

Genauso, wie der Compiler ablehnt:
Java:
int i;
int a;
a=i;    // ERROR!
sollte er meiner Meinung anch ablehnen:
Java:
int i[10];
int a;
a=i[1];  // (leider) kein Error

Ja, ich weiß, dass er's nicht macht. Aber IMHO sollte er.
Deshalb schreib ich ja auch nur, (der Programmklarheit wegen):
(Sollte toblo sich drum kümmern.)
 
G

Gast2

Gast
Also dein Code lässt sich nicht kompilieren, also kommt doch nen Error ;)
Und wenn du schreibst:
Java:
int i[];
int a;
a = i[0];
Dann gibts natürlich auch den Fehler aus deinem ersten Code ;)

Was sollte denn deiner Meinung nach in einem frisch initialisierten int[] Array liegen wenn keine Defaultwerte?
 

AquaBall

Top Contributor
Also dein Code lässt sich nicht kompilieren, also kommt doch nen Error ;)
Und wenn du schreibst:
Java:
int i[];
int a;
a = i[0];
Dann gibts natürlich auch den Fehler aus deinem ersten Code ;)

Was sollte denn deiner Meinung nach in einem frisch initialisierten int[] Array liegen wenn keine Defaultwerte?

Ich bin der Meinung, dass
Code:
int i[10]
instanziiert, aber nicht initialisiert ist.
Die Array-Variable selbst ist initialisiert, aber die Werte sind nur instanziiert, ohne Inhalt.
Wenn hier stünde
Code:
String s[10]
, dann kämest du auch nicht auf die Idee, dass s[x] mit dem Wert "" initailisiert wäre. Sondern aller Werte von s[] sind undefiniert NULL.

Logisch, dass bei deinem Beispiel
Code:
int i[];
ein Fehler kommt. Da ist ja nicht mal die Arraygröße fix.
Mein Beispiel war aber
Code:
int i[10];
.

Leider kommt bei meinen Beispielen beim primitive
Code:
a=i;
sehrwohl der Fehler "i nicht initialisiert", aber bei
Code:
a=i[1];
KEIN Fehler.
 
Zuletzt bearbeitet:
G

Gast2

Gast
Mit
Code:
int[] i
deklarierst du die Variable, initialisierst oder instantiierst die aber nicht.

Java:
String s[10]
Das lässt sich nicht kompilieren. Meinst du vielleicht
Code:
String[] s = new String[10];
? Dann hast du s doch initialisiert und kannst das nicht mit
Code:
String s;
vergleichen.
In einem frisch initialisierten String Array ist per default alles null, so wie in jedem anderen Objekt Array. Bei primitiven gibts kein null, da ist alles 0 bzw. 0.0.

Leider kommt beim primitive a=i sehrwohl der Fehler "i nicht initialisiert", aber bei a=i[1] KEIN Fehler.
Doch, wenn du i nicht initialisierst kommt sehrwohl der selbe Fehler.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Tommy Nightmare void Methode gibt Array zurück Java Basics - Anfänger-Themen 3
L Methoden Eine Methode um zu testen ob es ein Nachbar gibt Java Basics - Anfänger-Themen 10
P Methode die ausgibt wie viele Primzahlen es zwischen 2 und n gibt Java Basics - Anfänger-Themen 10
G Gibt es eine Methode die bei einem StringBuilder n mal das Zeichen c hinzufügt? Java Basics - Anfänger-Themen 6
O Methode gibt Null zurück Java Basics - Anfänger-Themen 7
D Methode die statt char[] ein "null" zurück gibt Java Basics - Anfänger-Themen 8
S Methoden void-Methode: Wieso gibt es eine Rückgabe? Java Basics - Anfänger-Themen 5
S Textdatei lesen, Methode gibt nur die letzte Zeile aus. Warum? Java Basics - Anfänger-Themen 5
P toString-Methode gibt immer null vor Variable aus Java Basics - Anfänger-Themen 9
Luk10 Methode gibt false zurück! Java Basics - Anfänger-Themen 2
S main-Methode gibt unerwartetes Ergebnis aus Java Basics - Anfänger-Themen 4
T gibt es eine methode die einem alle Strings zurückliefert? Java Basics - Anfänger-Themen 7
A Gibt es eine Methode die den Suffix prüft ? Java Basics - Anfänger-Themen 3
T Rekursive Methode Java Basics - Anfänger-Themen 13
Ü Methode soll Quadrat aus der Summer zurückgeben Java Basics - Anfänger-Themen 10
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
Leyla Spezifischte Methode Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
T Methode soll etwas ausrechnen und zurückgeben (klappt nd) hat wer eine Idee? Java Basics - Anfänger-Themen 11
P Main Methode scheint Constructor aufzurufen, ohne dass es so gecoded ist Java Basics - Anfänger-Themen 2
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
C Zugriff auf Methode Java Basics - Anfänger-Themen 2
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
T Methode akzeptiert String nicht Java Basics - Anfänger-Themen 18
M Methode sperren bis ein Kriterium erfüllt wurde Java Basics - Anfänger-Themen 3
D Switch Case Methode aufrufen Java Basics - Anfänger-Themen 3
C Unbekannte Methode add bei Klasse die JTree erweitert Java Basics - Anfänger-Themen 14
M methode aufrufen ohne parameter Java Basics - Anfänger-Themen 1
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
monsterherz einfache Methode mit Fehler den ich nicht finde Java Basics - Anfänger-Themen 21
Ostkreuz Wieso wird die Methode nochmal aufgerufen? Java Basics - Anfänger-Themen 5
G Variable aktualisiert sich nicht in rekursiver Methode Java Basics - Anfänger-Themen 4
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
Say super.methode / super.variable und super(variable) Java Basics - Anfänger-Themen 2
B Wie kann ich folgende Klasse/Methode per Button ausführen? Java Basics - Anfänger-Themen 1
D Interface Methode wird ungewollt in der Subklasse überschrieben Java Basics - Anfänger-Themen 5
til237 Iterative Methode in rekursive Methode umschreiben Java Basics - Anfänger-Themen 4
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
D next() Methode mehrfach verwenden Java Basics - Anfänger-Themen 1
Ostkreuz Methoden Von Dezimal zu Hexadezimal Methode toHex Java Basics - Anfänger-Themen 2
I Entity Objekt nicht gefunden -> Webhook empfangen in der gleichen Methode (Transaktion) Java Basics - Anfänger-Themen 37
N Throw an Main Methode übergeben Java Basics - Anfänger-Themen 7
M Methoden Methode 'wiederhole' nicht gefunden (Uebersetzungsfehler) Java Basics - Anfänger-Themen 1
H Zu langen String aufteilen - bequeme Methode? Java Basics - Anfänger-Themen 14
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
S Array mit Methode löschen Java Basics - Anfänger-Themen 2
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
T Variable von Objekten in einer Methode überprüfen Java Basics - Anfänger-Themen 26
M Anzahl Kommandozeilenparamter mittels Methode Java Basics - Anfänger-Themen 11
D Methode: Array Reihenfolge tauschen Java Basics - Anfänger-Themen 3
julian0507 Array aus Methode in anderer Methode sichtbar machen Java Basics - Anfänger-Themen 10
frager2345 Problem mit Methode Java Basics - Anfänger-Themen 4
J Die statische Main-Methode ändert Instanzvariable? Java Basics - Anfänger-Themen 10
D Methode aus dem Aufrufer aufrufen Java Basics - Anfänger-Themen 1
T IOStreams read(byte[]b) methode Java Basics - Anfänger-Themen 2
frager2345 Java Singleton Muster -> Methode für Konstruktor mit Parametern Java Basics - Anfänger-Themen 3
U Beispiel Methode size() vom "Collection"-interface... Wie kann man sichtbar machen, was die Methode unter der Haube macht? Java Basics - Anfänger-Themen 8
D Warum kann ich hier nicht auf die Methode zugreifen? Java Basics - Anfänger-Themen 5
M generate Methode für Streams Java Basics - Anfänger-Themen 6
M Methoden Zweidimensionaler Array mit Setter Methode ändern Java Basics - Anfänger-Themen 4
I Optionaler Parameter bei Methode, der nur optional ist? Java Basics - Anfänger-Themen 6
berserkerdq2 Wozu benötigt man den BiPredicate, kann ich nicht einfach eine normale Methode nutzen, statt BiPredicate? Java Basics - Anfänger-Themen 3
T Linked List set-Methode Java Basics - Anfänger-Themen 2
D Arrays an replaceAll-Methode übergeben Java Basics - Anfänger-Themen 12
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
berserkerdq2 Habe eine Klasse, welche public ist, diese hat eine public Methode, die nicht static ist. Wenn ich nun versuche aufzurufen Probleme? Java Basics - Anfänger-Themen 8
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
W Equals-Methode überschreiben bei composition Java Basics - Anfänger-Themen 20
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
V Methoden printChar Methode mit Rückgabetyp void Java Basics - Anfänger-Themen 26
F Graph Tiefensuche Methode Java Basics - Anfänger-Themen 7
Jambolo Methode, welche die 3 letzten Parameter Werte speichert Java Basics - Anfänger-Themen 20
berserkerdq2 wie funktioniert contenthandler, was muss ich bei der Methode startElement und endElement tun? Java Basics - Anfänger-Themen 11
M Warum return die Methode den Wert nicht Java Basics - Anfänger-Themen 5
berserkerdq2 Wann soll ich den Stream schließen, wenn ich das in einer Methode habe? Java Basics - Anfänger-Themen 8
berserkerdq2 Ich gebe eine ArrayList als List zurück per MEthode, wie kann ich nun aber die ArrayList speichern? Java Basics - Anfänger-Themen 46
S Methode Java Basics - Anfänger-Themen 4
M Eine Methode die erkennt ob die ein gegebene zahl größer oder kleiner sein muss Java Basics - Anfänger-Themen 2
U Methode wird genutzt, ohne dass ich die aufrufe? Java Basics - Anfänger-Themen 4
F nach Methode Programm nicht beenden Java Basics - Anfänger-Themen 9
Liroyd Methode mit Objektvariabel rechnen? Java Basics - Anfänger-Themen 6
H Mit setter-Methode JLabel in einer andern Klasse ändern. Java Basics - Anfänger-Themen 40
D Methode um mögliche Rezepte auszugeben Java Basics - Anfänger-Themen 12
U Warum kann ich die Methode in der ENUM Klasse nicht aufrufen? Und warum geht die Switch nicht? Java Basics - Anfänger-Themen 8
J Hallo zusammen , was macht diese Methode hier genau? Java Basics - Anfänger-Themen 3
D Array in Main Methode aus anderer Klasse aufrufen Java Basics - Anfänger-Themen 3
H Eine Methode über Actionlistener beenden Java Basics - Anfänger-Themen 8
G jButton führt Main Methode nicht richtig aus Java Basics - Anfänger-Themen 3
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
C60 Methoden Main-Methode erkennt meine Arrays nicht. Java Basics - Anfänger-Themen 7
A Ein Array bearbeiten und in einer anderen Methode nutzen Java Basics - Anfänger-Themen 6
A Ergebnis einer Methode bei einer anderen verwenden Java Basics - Anfänger-Themen 13
L Iteratorform und Methode mit variabler Parameterzahl Java Basics - Anfänger-Themen 31
F Methode ArrayList mit Eingabewert Java Basics - Anfänger-Themen 2
M Wie kann eine Methode für ein vorhandenes "Array von char" einen Index-Wert zurückliefern? Java Basics - Anfänger-Themen 3
M Wie kann die Implementation einer Methode den Wert eines Attributs vermindern? Java Basics - Anfänger-Themen 3
Csircc Rekursive Methode Stack Overflow Java Basics - Anfänger-Themen 10
M Wie kann eine Methode (string) eine andere Methode (void) mit zufälligen int-Werten aufrufen? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben