Jak hermetyzować tablicę w Javie

Zaczynam od Java i uczę się o setterach, getterach i enkapsulacji. Mam bardzo prosty program, dwie klasy:

Container ma prywatną tablicę int (numArray) z jego seterem i getter.

Main tworzy aContainer obiekt i używa gototalArray metoda.

public class Container {
    private int numArray[]= {0,0,0};
    public int[] getNumArray() {
        return numArray;
    }
    public void setNumArray(int index, int value){
        numArray[index] = value;
    }    
}

public class Main {
    public static void main(String[] args) {
        Container conte = new Container();
        System.out.println(totalArray(conte.getNumArray()));
        conte.getNumArray()[2]++;
        System.out.println(totalArray(conte.getNumArray()));
    }
    private static int totalArray (int v[]){
        int total=0;
        for (int conta =0; conta<v.length;conta++){
            total+=v[conta];
        }
        return total;
    }
}

Problem: Mogę zmienić prywatną tablicę int przez getter, wiem, że to dlategogetNumArray zwraca referencję donumArray, a nie sama tablica. Gdybym był zainteresowany pojedynczym elementem tablicy, zrobiłbym gettera z wartością indeksu, ale chcę, aby cała tablica dlatotalArray metoda.

Jak mogę zapobiecnumArray od modyfikacji z jego klasy?

questionAnswers(8)

yourAnswerToTheQuestion