Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Referente ao curso C# I, no capítulo Classes e objetos e atividade Vídeo 1

Duas semanas fiz uma pergunta, o instrutor respondeu, porem não explicou a tréplica, logo a pergunta permanece:

Tenho uma dúvida em relação ao argumento do metodo: Supondo que eu tenha a seguinte classe:

class ContaCorrente

public void deposita(double valor) //codigo deposita public void saca(double valor) //codigo saca public void transfere(double valor, ContaCorrente conta){ this.saca(valor) conta2.deposita(valor) }

Dúvida: instanciei um objeto conta1 e outro conta2, e quero fazer uma transferencia, no momento o meu metodo transfere recebe dois argumentos valor e conta. Só que"" ContaCorrente conta""", esta dentro da própria classe que o declara, neste caso não estaria gerando algo recursivo, ? Como que a classe aponta para si mesmo????? ou seja, na memoria "conta" é do tipo ContaCorrente, só que como ela pode ser do tipo ela mesma...??????????????

1 resposta
solução!
class ContaCorrente
{
    public void deposita(double valor){}
    public void saca(double valor){}

    public void transfere(double valor, ContaCorrente conta)
    {
        this.saca(valor);
        conta.deposita(valor);
    }
}

Respondendo sua dúvida, no método transfere não tem problema informar que um objeto do tipo ContaCorrente deve ser passado para o método, como parâmetro.

A classe aponta para si mesmo desde quando você cria o objeto. Quando instância:

ContaCorrente conta = new ContaCorrente();

Está dizendo que um objeto do tipo ContaCorrente está sendo criado para ela mesma.

Enfim. A utilização de um objeto como parâmetro, como feito no método transfere, é comumente utilizada. Você só está obrigando que, a transferência necessariamente deve ser feita para um objeto do tipo ContaCorrente. Não é algo recursivo.