Quote Originariamente inviata da campaenrico Visualizza il messaggio
codice:
public class Algoritmo1 {
    public Algoritmo1(Circle[][] matrix){
                 .......

        matrix=matricecopia;
        }
    }
Nell'ultimo assegnamento, tu assegni al parametro del costruttore di Algoritmo1, che è una variabile ben distinta dal 'matrix' campo di istanza di un oggetto StagePrincipale.

Quando il costruttore di Algoritmo1 viene invocato riceve una copia del reference dell'array Circle[][] istanziato in StagePrincipale. Quindi in quel momento 'matrix' parametro di Algoritmo1 e 'matrix' campo di StagePrincipale hanno lo stesso valore, ovvero "puntano" allo stesso identico oggetto array Circle[][].

Ma essendo appunto variabili distinte, se cambi il parametro 'matrix' NON cambi ciò che c'è in 'matrix' campo di StagePrincipale.