Scusa non ho capito bene cosa intendi, non hai capito quando richiamare il metodo visualizza() ?
Se sei in una classe fuori da Campo, dovresti avere nel main della classe un richiamo al costruttore di Campo, subito dopo averlo creato lo visualizzi.
Però continui a fare confusione tra matrice di interi e matrici di oggetti di tipo Campo!
Infatti nel metodo visualizza passi come parametro (Campo[][] campoDiGioco)!
Se il metodo è ideato per visualizzare un oggetto di tipo Campo, cioè vuoi in pratica stampare la matrice di interi campoDiGioco di un particolare Campo puoi farlo almeno in due modi (il secondo è molto più sensato)
1- Hai un metodo visualizza(Campo c) nella tua classe esterna a Campo, quella del main per intenderci, e nel metodo principale crei una nuova istanza di Campo, che poi passi al metodo visualizza.
All'interno del metodo poi controlli il valore di ogni cella della matrice campoDiGioco del Campo che hai passato al metodo.
Il metodo main della classe diventa qualcosa del tipo
2- Dal momento che ora sei interessato a visualizzare un Campo ha molto più senso che il metodo visualizza() sia un metodo della classe Campo e sia richiamato sull'oggetto di tipo Campo che vuoi visualizzare.codice:// ... eventuali istruzioni iniziali Campo c=new Campo(); visualizza(c); // ... continui il metodo main
In questo modo non devi passare nessun parametro al metodo, quindi visualizza lo definisci nella classe Campo in questo modo :
Mentre nel main dell' altra classe a questo punto fai qualcosa del tipo:codice:public void visualizza() { // il metodo non è più static perché viene richiamato su un oggetto e non su una classe... // qui stampi a video la tua matrice di interi }
In realtà il modo migliore per visualizzare un Campo sarebbe ridefinire il metodo toString() nella classe Campo e stamparlo semplicemente a video ma per ora devi acquisire le basi del linguaggio!codice:// ... eventuali istruzioni iniziali Campo c=new Campo(); c.visualizza(); // ... continui il metodo main

Rispondi quotando