So kapseln Sie ein Array in Java

Ich beginne mit Java und lerne über Setter, Getter und Encapsulation. Ich habe ein sehr einfaches Programm, zwei Klassen:

Container hat ein privates Int-Array (numArray) mit seinem Setter & Getter.

Main schafft eineContainer Objekt und verwendet es intotalArray Methode.

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: Ich kann das private int-Array durch den Getter ändern, ich weiß, das liegt darangetNumArray&nbsp;gibt einen Verweis auf zurücknumArraynicht das Array selbst. Wenn ich an einem einzelnen Element des Arrays interessiert wäre, würde ich einen Getter mit einem Indexwert erstellen, aber ich möchte das gesamte Array für dastotalArray&nbsp;Methode.

Wie kann ich das verhindern?numArray&nbsp;von aus seiner Klasse geändert werden?