Apostila Caelum - Método Transfere

5 respostas
rodrigoolv

Galera, estou estudando pela apostila da Caelum. Só que quando chegou no tópico método transfere, eu não entendi.
Exemplo:
Criei um objeto minhaConta da classe conta, criei os metodos para depositar e sacar. Agora, eu quero criar um método para transferir valores entre uma conta e outra.
Eu fiz o seguinte:

boolean transferePara (Conta destino,double valor)
//Sacar é o método para sacar dinheiro
     if (sacar == false)
     {
    		return false;
     }
     else
     {
//Deposita é o método para depositar
    	 minhaConta.deposita(valor);
     
     return true;
     }

Minha pergunta é, no campo destino e valores, como eu faço para deixar em branco, para que eu possa utilizar esse método
em alguma conta que eu vá criar depois? Porque pelo o que eu entendi, eu tenho que definir a conta destino, ali no próprio método.
Grato.

5 Respostas

sgaothaich

Tu não precisa deixar nada em branco, destino e valor são parâmetros que vc informa quando faz a chamada do método.

conta1.transfere(conta2, 100);
igor_ks

apenas por boas praticas e deixar o codigo mais limpo, evite usar campos booleanos com condicoes “== false” ou “== true” (pior ainda)

boolean transferePara (Conta destino,double valor)  
    //Sacar é o método para sacar dinheiro  
         if (sacar == false)  
         {  
                return false;  
         }  
         else  
         {  
    //Deposita é o método para depositar  
             minhaConta.deposita(valor);  
           
         return true;  
         }

apenas refatorando seu codigo

boolean transferePara (Conta destino,double valor)  
         return false;
         if (sacar)  {  
             minhaConta.deposita(valor);  
             return true;  
         }  
    }

fica bem mais limpo e bonito :smiley:

quanto a sua duvida, o metodo deposita nao pede nenhum parametro destino? pois ele precisa saber pra qual conta depositar, caso precise passe o destino do parametro no parametro do metodo deposita

gustavo_mb
class Conta {
	//atributos

	//método saca

	//método deposita

	void tranferePara(Conta contaDeDestino, double valor) {
		this.saca(valor);
		contaDeDestino.deposita(valor);
	}	
}

Veja o exemplo acima. O método tranferePara tem dois parametros: um valor do tipo double, e uma contaDeDestino do tipo Conta. Lembre-se que em java as variáveis devem possuir um tipo.

Quando você for chamar esse método na sua classe de testes, ficará assim:

class TesteDeConta {
	public static void main(String args[]) {
		
		Conta c1 = new Conta();
		Conta c2 = new Conta();

		c1.tranferePara(c2,2000); 
	}
}

Ou seja, a conta c1 está tranferindo para a conta c2, R$2000. Você pode usar o método tranferePara para tranferir qualquer valor, para qualquer conta existente. Mas, para usar esse método, deverá passar os 2 argumentos (valor e contaDestino).

Deu pra entender?

denisspitfire

nao sei se estou viajando. Mas nao seria para destino?

destino.deposita(valor);
denisspitfire

nao tinha visto a resposta do gustavo_mb . Malz

Criado 26 de outubro de 2011
Ultima resposta 26 de out. de 2011
Respostas 5
Participantes 5