Array als Instanz einer Klasse

Fishmsta

Mitglied
Hallo, Leut!
Ich bin z.zt. dabei ein Lösungsprogramm für Sudokus zu schreiben.

Im moment habe ich mir gerade mal die nötigen Klassen geschrieben:
Feld.java:
Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sudoku;

import java.util.Arrays;
import java.util.Set;
import java.util.HashSet;

/**
 *
 * @author Marvin
 */
public class Feld {
    
    int gesetzterWert;
    int[] tmp = {1,2,3,4,5,6,7,8,9};
    Set moeglicheWerte = new HashSet();
    
    public Feld() {
        gesetzterWert = 0;
        moeglicheWerte.add(Arrays.asList(tmp));
    }
    
    public void setGesetzterWert(int neuerWert) {
        this.gesetzterWert = neuerWert;
    }
    
    public int getGesetzterWert() {
        return this.gesetzterWert;
    }
    
    public Set getMoeglicheWerte() {
        return this.moeglicheWerte;
    }
    
    public void entferneMoeglichenWert(int zuEntfernenderWert) {
        this.moeglicheWerte.remove(zuEntfernenderWert);
    }
    
}

Block.java:
Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sudoku;

import java.util.Arrays;
import java.util.Set;
import java.util.HashSet;

/**
 *
 * @author Marvin
 */
public class Block {
    
    int[] tmp = {1,2,3,4,5,6,7,8,9};
    Set moeglicheWerte = new HashSet();
    
    public Block() {
        Feld[][] block = new Feld[3][3];
        moeglicheWerte.add(Arrays.asList(tmp));
    }
    
    public Set getMoeglicheWerte() {
        return this.moeglicheWerte;
    }
    
    public void entferneMoeglichenWert(int zuEntfernenderWert) {
        this.moeglicheWerte.remove(zuEntfernenderWert);
    }
    
}

Sudoku.java:
Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sudoku;

/**
 *
 * @author Marvin
 */
public class Sudoku {
    
    public Sudoku() {
        Block[][] sudoku = new Block[3][3];
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Sudoku test= new Sudoku();
        
        for(int zeile = 0; zeile <= 2; zeile++) {
            for(int spalte = 0; spalte <= 2; spalte++) {
                System.out.println(test[zeile][spalte].getMoeglicheWerte());
            }
        }
    }
}

bei
Java:
System.out.println(test[zeile][spalte].getMoeglicheWerte());
bekomme ich als Fehler ausgeben:
Code:
array required, but sudoku.Sudoku found

Wie kann ich denn in der main() ein zweidimensionales Array vom Typ Block erzeugen?
 

TKausL

Top Contributor
Java:
public Sudoku() {
        Block[][] sudoku = new Block[3][3];
        for(Block[] i : sudoku){
            for(Block j : i){
                j = new Block();
            }
        }
    }
 

Fishmsta

Mitglied
schonmal danke für die hilfe.
klingt logisch, das Array im Konstruktor zu erzeugen.

bekomme aber leider immernoch den gleichen fehler.:bahnhof:

edit:
hier noch mal die aktuelle Sudoku.java:
Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sudoku;

/**
 *
 * @author Marvin
 */
public class Sudoku {
    
    public Sudoku() {
        Block[][] sudoku = new Block[3][3];
        for(Block[] i : sudoku){
            for(Block j : i){
                j = new Block();
            }
        }
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Sudoku test = new Sudoku();
        
        for(int zeile = 0; zeile <= 2; zeile++) {
            for(int spalte = 0; spalte <= 2; spalte++) {
                System.out.println(test[zeile][spalte].getMoeglicheWerte());
            }
        }
    }
}
 
G

Gast2

Gast
Du weißt lediglich der Variablen j was zu. Die ist aber nur in der for Schleife gültig.
Du musst hier mit der normalen for Schleife arbeiten und die werte dann so setzen:
Code:
sudoku[i][j] = new Block();
 

TKausL

Top Contributor
Du weißt lediglich der Variablen j was zu. Die ist aber nur in der for Schleife gültig.
Du musst hier mit der normalen for Schleife arbeiten und die werte dann so setzen:
Code:
sudoku[i][j] = new Block();

Ach, da hatte ich einen Denkfehler :lol:

Dennnoch sollte eine NullPointerException kommen...

Edit:

Java:
public static void main(String[] args) {
        Sudoku test= new Sudoku();
        
        for(int zeile = 0; zeile <= 2; zeile++) {
            for(int spalte = 0; spalte <= 2; spalte++) {
                System.out.println(test[zeile][spalte].getMoeglicheWerte());
            }
        }
    }

test ist doch garkein Array. warum greifst du drauf zu, als wäre es ein array?


Java:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sudoku;
 
/**
 *
 * @author Marvin
 */
public class Sudoku {
    public Block[][] sudoku = new Block[3][3];
    public Sudoku() {
        
    }
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Sudoku test= new Sudoku();
        
        for(int zeile = 0; zeile <= 2; zeile++) {
            for(int spalte = 0; spalte <= 2; spalte++) {
                System.out.println(test.sudoku[zeile][spalte].getMoeglicheWerte());
            }
        }
    }
}

So wäre es richtig (du bekommst die NullPointerException, die du behebst mit 2 geschachtelten for-schleifen im Konstruktor).
 
Zuletzt bearbeitet:

Fishmsta

Mitglied
Ach, da hatte ich einen Denkfehler :lol:

Dennnoch sollte eine NullPointerException kommen...

Edit:

Java:
public static void main(String[] args) {
        Sudoku test= new Sudoku();
        
        for(int zeile = 0; zeile <= 2; zeile++) {
            for(int spalte = 0; spalte <= 2; spalte++) {
                System.out.println(test[zeile][spalte].getMoeglicheWerte());
            }
        }
    }

test ist doch garkein Array. warum greifst du drauf zu, als wäre es ein array?

da test vom typ Sudoku ist, was im Konstruktor wie folgt definiert ist:

Java:
public Sudoku() {
        Block[][] sudoku = new Block[3][3];
        for(int zeile = 0; zeile <= 2; zeile++){
            for(int spalte = 0; spalte <= 2; spalte++){
                sudoku[zeile][spalte] = new Block();
            }
        }
    }

meine frage war ja ob und wie ich am besten das array in der main() anlegen muss
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Array verkleinern Java Basics - Anfänger-Themen 2
J Array aus Numberfield Eingaben Java Basics - Anfänger-Themen 7
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
Ü Zweidimensionales Array in der ersten Zeile deklarieren Java Basics - Anfänger-Themen 13
Thomas Uppe 2D Array Reihenfolge vermischen Java Basics - Anfänger-Themen 4
T array auslesen Java Basics - Anfänger-Themen 2
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
moini Auf Array aus Superklasse zugreifen? Java Basics - Anfänger-Themen 2
J ArrayList in 2D-Array konvertieren. Java Basics - Anfänger-Themen 48
M NullPointerException: Cannot read the array length because "this.Kinder" is null Java Basics - Anfänger-Themen 1
P Wieso kann ich als Index für einen Array einen Char angeben? Java Basics - Anfänger-Themen 3
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Proxy Chars vor array übergabe toLowerUpcase Java Basics - Anfänger-Themen 14
iAmFaiinez Primzahlen Tester ohne Array Java Basics - Anfänger-Themen 4
S array 2 dimensional treppe Java Basics - Anfänger-Themen 3
S Array 2x2 Blöcke mit 0 und 1 Java Basics - Anfänger-Themen 10
C Array von Klassen Java Basics - Anfänger-Themen 2
julian0507 2Dim-Array Spaltensummen Java Basics - Anfänger-Themen 1
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
melisax Java 2D-Array Tabelle Java Basics - Anfänger-Themen 4
melisax Java Array Wert an bestimmtem Index angeben Java Basics - Anfänger-Themen 14
W Items löschen aus String Array vom Custom Base Adapter Java Basics - Anfänger-Themen 2
Proxy Stack erweitern mit neuem Array falls der alte voll ist!? Java Basics - Anfänger-Themen 5
E Array, nächste Zahl zur 5 ausgeben, wie? Java Basics - Anfänger-Themen 42
J Array.list vergleichen Java Basics - Anfänger-Themen 1
W Java-Code mit Array Java Basics - Anfänger-Themen 14
D Reflections & Generisches Array Java Basics - Anfänger-Themen 4
T Array Java Basics - Anfänger-Themen 2
T Array Java Basics - Anfänger-Themen 15
T Wörteranzahl im Array zählen Java Basics - Anfänger-Themen 9
Ostkreuz Zweidimensionaler Array Index Java Basics - Anfänger-Themen 2
S String Array Buchstaben um einen gewissen Wert verschieben Java Basics - Anfänger-Themen 4
R Images aus einem Array ausgeben Java Basics - Anfänger-Themen 3
R 2d Array individuell machen Java Basics - Anfänger-Themen 4
D 2D Char Array into String Java Basics - Anfänger-Themen 2
J Array Median bestimmen Java Basics - Anfänger-Themen 6
S Array Maximum bestimmen mit for und foreach Java Basics - Anfänger-Themen 7
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
N Array Java Basics - Anfänger-Themen 1
J Array Mittleren Wert bestimmen Java Basics - Anfänger-Themen 2
D OOP Array einem Objekt zuweisen Java Basics - Anfänger-Themen 2
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
S leeres Array statt Null Pointer Exception ausgeben Java Basics - Anfänger-Themen 20
S Inhalte aus Array vergleichen und Max ausgeben Java Basics - Anfänger-Themen 3
M 2d array ohne längen anlegen Java Basics - Anfänger-Themen 4
S Bestimmte werte aus einem Array löschen Java Basics - Anfänger-Themen 2
S Ausgeben wie oft ein Wert in einem Array vorkommt Java Basics - Anfänger-Themen 7
E Reihenfolge der Werte umdrehen (mittels statischem int-Array Java Basics - Anfänger-Themen 3
O 2 Dimensionales Array Java Basics - Anfänger-Themen 6
M Bubble Sort - Int[] Array sortieren Java Basics - Anfänger-Themen 2
javaBoon86 Array mehrere Dimensionen Java Basics - Anfänger-Themen 10
B Array nach Elementwerten sortieren? Java Basics - Anfänger-Themen 1
B Explizit Array definieren geht nicht? Java Basics - Anfänger-Themen 14
D Kleinste Zahl in Array finden die vorher noch errechnet werden müssen. Java Basics - Anfänger-Themen 4
L Gegebenes Array sortieren, indem zufällige Zahlenpaare aus Array ausgewählt werden Java Basics - Anfänger-Themen 14
Say 2-DIM Array Code lesen und verstehen Java Basics - Anfänger-Themen 5
N Array beim erstellen mit Werten füllen Java Basics - Anfänger-Themen 6
C Java Array Struktur, welche ist wann besser? Java Basics - Anfänger-Themen 12
Temsky34 Array IndexOf nicht verfügbar Java Basics - Anfänger-Themen 18
belana wie am besten 2D Array von String to Integer Java Basics - Anfänger-Themen 18
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
E Durch Muster in Array iterieren Java Basics - Anfänger-Themen 3
L Frage zum Array Java Basics - Anfänger-Themen 1
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
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
P Array vom Typ Klasse Java Basics - Anfänger-Themen 18
Lion.King Array deklarieren und initialisieren Java Basics - Anfänger-Themen 5
P Array-Objekte-Aufruf Java Basics - Anfänger-Themen 22
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
M Methoden Zweidimensionaler Array mit Setter Methode ändern Java Basics - Anfänger-Themen 4
AkiJou Zeile in 2d Array löschen Java Basics - Anfänger-Themen 2
LilliCherry Array in einer Zeile ausgeben Java Basics - Anfänger-Themen 6
A Elemente in einem Array Java Basics - Anfänger-Themen 5
A Vorkommende Farben ermittel und als Array zurückgeben Java Basics - Anfänger-Themen 7
AhmadSlack Array Java Basics - Anfänger-Themen 7
Jambolo Kartenhand Array Java Basics - Anfänger-Themen 14
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
S Eine Variable in einem Array speichern Java Basics - Anfänger-Themen 5
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
T String Array Fehler beim Index Java Basics - Anfänger-Themen 3
krgewb byte-Array, das ein Bild repräsentiert Java Basics - Anfänger-Themen 1
1 Array rekursiv durchlaufen Java Basics - Anfänger-Themen 8
I Methoden Wieso wird mein Array "a" verändert und meine Variable "a" nicht? Java Basics - Anfänger-Themen 4
EykS 3D Druckdatei basierend auf 3D Array? Java Basics - Anfänger-Themen 3
sserio Array funktioniert nicht Java Basics - Anfänger-Themen 2
sserio Iterierung über ein zweidimensionales Array Java Basics - Anfänger-Themen 16
sserio Zweidimensionales Array [][] wird untereinander ausgegeben Java Basics - Anfänger-Themen 14
Chris.089 2 Werte im Array tauschen Java Basics - Anfänger-Themen 6
D EinMalEins mithilfe einer for-Schleife und Array Java Basics - Anfänger-Themen 1
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
L Gridmuster in einem Array Java Basics - Anfänger-Themen 2
sgtcoopa Array übergeben Schleife Java Basics - Anfänger-Themen 0
B Compiler-Fehler Array aus Objekten übergeben Java Basics - Anfänger-Themen 7
padde479 Array Multiplikation der ersten n Zahlen Java Basics - Anfänger-Themen 7
G zweidimensionales int Array sortieren Java Basics - Anfänger-Themen 57
W Array ausgeben Java Basics - Anfänger-Themen 29

Ähnliche Java Themen

Neue Themen


Oben