Duvida nos parametros do metodo

4 respostas
renatorudolf

Boa noite,
Estou estudando a apostila da caelum FJ-11 e estou com a seguinte duvida no codigo abaixo:

class Conta {
	
String dono;
int numConta;
double saldo;
double limite;

	
void sacar ( double valor )
{
this.saldo -= valor;	
}

void deposita ( double valor ){
this.saldo+=valor;
}	
// não entendi o pq foi inserido o nome da classe junto com o destino.
void transfere(Conta destino, double valor){
	this.saldo-=valor;
	destino.saldo +=valor;
}
	
}

[code]class TestaConta {

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

	
	c1.saldo=300;
	c1.dono=" Juvenal ";
	c1.sacar(0);
	c1.deposita(500);
	
	
	
	Conta c2 = new Conta();
	c2.saldo=300;
	c2.dono=" Duke ";
	c2.sacar(0);
	c2.deposita(500);
	
	

	c1.transfere(c2,50);
	
	
	
	System.out.println( c1.dono );
	System.out.println(c1.saldo);
	
	System.out.println( c2.dono );
	System.out.println( c2.saldo );
}
}

Poderiam esclarecer a linha 18 ?

4 Respostas

I

O método realiza uma transferência de um objeto Conta1 para outro objeto Conta2.
Ele receberá no primeiro parâmetro o objeto da conta (c1, c2, c3,…) que deve ser realizada uma transferência para esta conta do objeto em uso ( o obj que você chama o método transfere ).

Ajudei :?: Até +…

Schwingel

Fala renatorudolf, beleza?

Complementando a ingridfarabulini…

O método “transfere” possui como argumento a conta a qual se refere o depósito e o valor que será transferido. No objeto “destino” do tipo “Conta” que está sendo passado como parâmetro, você identifica qual o dono, numero, saldo e limite da conta. Ao invés de passar todas essas informações separadas (dono, numConta, saldo e limite), aproveitou-se o objeto do tipo “Conta” que possui todas essas características. Isso foi feito por meio dessa parte do código:

Conta c1 = new Conta();   
  
       
    c1.saldo=300;   
    c1.dono=" Juvenal ";   
    c1.sacar(0);   
    c1.deposita(500);

Logo depois você passa a conta com os dados preenchidos (código acima) e o valor que será transferido.

c1.transfere(c2,50);

Abraço e bons estudos.

Schwingel

S

Não sei se vc chegou na parte que fala sobre referencia de objeto.

void transfere(Conta destino, double  valor)

Você possui uma Conta instanciada em memória, e destino é uma variavel que aponta pra esse objeto. Para poder acessar todos os atributos e métodos desse objeto Conta, você precisará dessa variável referencia.
Então no método você está passando a referencia para o objeto Conta que ja está instanciado em memória, e não está passando o objeto.

renatorudolf

santos.fernando

valew cara, entendi.

abraço

Criado 7 de junho de 2010
Ultima resposta 7 de jun. de 2010
Respostas 4
Participantes 4