Um problema aí é que em Operacoes tudo está static. Sendo assim, só existe um totalAcc compartilhado entre todas as instâncias. Por exemplo, e se eu quisesse ter 2 operações diferentes e independentes?
// cria 2 instâncias de Operacoes
Operacoes op = new Operacoes();
Operacoes outraOp = new Operacoes();
// usa uma das operações
op.soma(Arrays.asList(1.0, 2.0));
// o valor de totalAcc da outra é alterado (na verdade é o mesmo, compartilhado entre as duas operações)
System.out.println(outraOp.totalAcc); // 3.0
Então você tem que decidir: deve ser possível ter 2 instâncias de Operacoes, cada uma com seu total?
Se não deve ser possível ter 2 instâncias diferentes, então nem faz sentido criar uma instância, você poderia usar simplesmente:
total = Operacoes.soma(operandos); // não precisa criar a variável operacoes, nem chamar new Operacoes()
Como os métodos também são estáticos, eles podem ser chamados diretamente através da própria classe. Criar instâncias nesse caso (com new) não tem nenhum ganho, na verdade nem faria sentido, já que tudo na classe é static.
Mas se você quer a possibilidade de ter várias instâncias diferentes, cada uma com seu total, então deve remover o static de tudo:
public class Operacoes {
private Double totalAcc;
public Operacoes() {
this.totalAcc = 0.0;
}
public Double getTotalAcc() { // criar um getter para o campo
return totalAcc;
}
public double soma(List<Double> operandos) {
for (Double valor : operandos) {
totalAcc += valor;
}
return totalAcc;
}
etc... (fazer o mesmo para os outros métodos)
}
Agora sim podemos ter operações independentes, cada uma com seu totalAcc:
Operacoes op = new Operacoes();
Operacoes outraOp = new Operacoes();
op.soma(Arrays.asList(1.0, 2.0));
// total de uma operação não é mais afetado pela outra
System.out.println(outraOp.getTotalAcc()); // 0.0
Repare também que criei um getter para o campo totalAcc, mas não criei um setter. Fiz isso porque obter o valor total acumulado faz sentido, mas mudá-lo diretamente não.
Da forma que você havia feito, com o campo public, era possível fazer isso:
Operacoes.soma(Arrays.asList(1.0, 2.0));
Operacoes.totalAcc = 99999.0; // muda o total para um valor nada a ver
Ou seja, era possível mudar o total para um valor completamente nada a ver. Mantendo o campo private e só criando um getter, eu controlo melhor quem pode alterá-lo - no caso, somente as operações podem mudar esse valor, evitando esses problemas.