Ciao è da poco che sto imparando java e facendo numerosi esercizi non riesco a capire l'utilità di arraylist.
cioè se ho il seguente problema:
scrivi la somma di numeri inseriti dall'utente.

Ora io ho pensato di mattere tutti i numeri letti in un array,in particolare in un arraylist:
codice:
import java.util.ArrayList;
class Somm{
ArrayList<Integer> numeri=new ArrayList<Integer>();
int somma=0;
public void Setnum(int n){
    numeri.add(n);
}
public void somma(){
    for(int i=0;i<numeri.size();i++){
        somma=somma+numeri.get(i);
    }

}
public int getSomma(){
    return somma;
}
}
da main:
codice:
import java.util.Scanner;
class somma88{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("inserisci i numeri");
Somm x=new Somm();
boolean b=true;
int somma=0;
while(b){
    int d=sc.nextInt();
    if(d==0){
    b= false;
    
}else
x.somma();
}
System.out.println(x.getSomma());
}
}
Il programma è compilato correttamente ma in esecuzione,qualsiasi sequenza di numeri che inserisco,mi danno sempre come risultato della somma 0.
Dove ho sbagliato?non dovevo usare ArrayList?