Duvida com variavel local

9 respostas
leandro-maanaim

é correto dentro do metodo eu eliminar a variavel novoSaldo e colocar this.saldo = this.saldo - quantidade?

public class Conta
{
	byte agencia;
	int numero;
	double saldo;
	double limite;
	
	public void saca(double quantidade)
	{
                     double novoSaldo = this.saldo - quantidade
	     this.saldo = novoSaldo;	
	}
}

9 Respostas

ViniGodoy

Sim, é correto.
Porém, normalmente usa-se uma variável temporaria para só alterar o saldo caso a conta tenha fundos.

Também é correto marcar seus atributos como private.

public class Conta {
   private int agencia;
   private int numero;
   private double saldo;
   private double limite;
	
   public void saca(double quantidade) {
      double novoSaldo = this.saldo - quantidade
      if (-novoSaldo > limite) {
         throw new IllegalArgumentException("Fundos insuficientes!");
      }

      this.saldo = novoSaldo;	
   }
}
Natalia_Lima

sim,
quanto menos variáveis vc usar, melhor!!!
assim são menos espaços reservados na memória,
melhor desempenho…

:smiley:

leandro-maanaim

e porque que os valores das variaveis sao perdidos quando o programa é terminado? tipo se eu digitar o valor de uma variavel na execuçao de um programa como que eu armazenos esses valores nela mesmo se eu mandar ele rodar dinovo? tem como fazer isso?

T

Natalia Lima:
sim,
quanto menos variáveis vc usar, melhor!!!
assim são menos espaços reservados na memória,
melhor desempenho…
:smiley:

Discordo. Acho até melhor usar várias variáveis para ir mostrando os resultados intermediários dos cálculos.

a) O compilador é suficientemente esperto para remover as variáveis não usadas.
b) Variáveis quase não ocupam espaço; ainda por cima, elas ficam no stack, não no heap; o stack é um local que já está reservado e não há custo para usá-lo.
c) Muitas vezes você acaba chamando um método lento (que retorna sempre o mesmo resultado) duas ou mais vezes, em vez de chamar apenas uma vez e copiar o resultado em uma variável.

T

Os valores das variáveis são guardados em memória volátil (ou seja, que é apagada quando é liberada pelo programa.). Se você quer guardar os valores, aprenda a mexer com arquivos ou então bancos de dados.

leandro-maanaim

Vlw amigao abçs!

Natalia_Lima

thingol:
Natalia Lima:
sim,
quanto menos variáveis vc usar, melhor!!!
assim são menos espaços reservados na memória,
melhor desempenho…
:smiley:

Discordo. Acho até melhor usar várias variáveis para ir mostrando os resultados intermediários dos cálculos.

a) O compilador é suficientemente esperto para remover as variáveis não usadas.
b) Variáveis quase não ocupam espaço; ainda por cima, elas ficam no stack, não no heap; o stack é um local que já está reservado e não há custo para usá-lo.
c) Muitas vezes você acaba chamando um método lento (que retorna sempre o mesmo resultado) duas ou mais vezes, em vez de chamar apenas uma vez e copiar o resultado em uma variável.

é verdade, pensando desta forma, vc está certo!
bem que meu professor dizia que se for para chamar o mesmo método várias vezes, por questão de desempenho é melhor guardar o resultado em uma variável!! :smiley:
mas ele também dizia para criarmos o minimo de variaveis que pudermos… rsrs

ahh e legal essa do espaço stack eu não sabia!!!

valew thingol :lol:

ViniGodoy

A questão da criação é mais pelo risco da inserção de bugs, do que pela performance em si.

A recomendação é mesmo evitar cria-las e restringir ao máximo o seu escopo. Mas é aí que entra o problema com a palavra “evitar”. Você precisa de um pouco de prática para reconhecer as situações que usa-las vai efetivamente tornar o código mais claro ou mais performático, ou que só vai gerar complicação.

leandro-maanaim

Hum… Intendi perfeitamente agradeço pela colaboração de vcs todos Abraços.

Criado 8 de julho de 2009
Ultima resposta 9 de jul. de 2009
Respostas 9
Participantes 4