Passar variavel como parametro e atualizar o valor

Acho q não é possivel mas não custa perguntar, sabem se é possivel passar uma variavel por parametro em um metodo e receber esta variavel incrementada ?, usava isso em clipper, já fiz em javascript algo parecido.

Exemplo:

double total_pedido = 0.0;

metodoquefazealgumacoisa(registros, ntabela, cformapgto, total_pedido);

-------

public void metodoquefazalgumacoisa(List<Pedido> registros, int tabela, int cformatpgto, double total_pedido) {
   
            total_pedido = 0.0;

            for (Pedido item : registros) {
                
                total_pedido += registros.getnTotal();

                registros.setSomando(true);

            }
}

--------

Neste exemplo o registros.setSomado(true), é alterado quando executa o metodo, mas o total_pedido não muda, seria tipo uma variavel global.

Vlw a ajuda.

Olá @kenew ,

Para alterar o valor de uma variável global que está numa classe você deve utilizar o “this”. No caso, quando você realiza o “total_pedido += registros.getnTotal();” está alterando a variável “double total_pedido” do método, não da classe. Para alterar a da classe utilize “this.total_pedido += registros.getnTotal();”.

Dessa forma, como ambas variáveis, local e global, possuem o mesmo nome. a variável local “encobre” a variável global e o acesso à variável global é possível utilizando a palavra-chave this.

Você pode encontrar o exemplo aqui Aula IF-UFRGS no item “Variáveis globais e variáveis locais”

Bom trabalho!

1 curtida