Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Estou com dúvida no curso de C# e seus Fundamentos, no exercício 2 do capítulo Mão na Massa - OO.

Não compreendi a lógica na resolução do exercício 2, quando a classe Conta é instanciada, visto que é chamado o método Deposita, com o valor 100,0 (c.Deposita(100). Em seguida, é testado o método Saca, com o seguinte código: if(c.Saca(150.0)) .... Nesse caso, o saldo não possui apenas o valor 150? Como é saque será realizado com sucesso, se o valor a ser sacado nesse caso é maior que o saldo?

3 respostas

amigão ficou meio confusa sua duvida no meu ponto de vista rs.. segue uma resposta baseado no que eu entendi..

se você definir no seu negocio a seguinte regra:

//não precisa passar a idade pois já possuímos ela vinculada a conta ..
public void Saca(double valor)
        {
            //se o saldo for maior ou igual o valor ele irá permitir o saque .. 
            if (this.Saldo >= valor && valor > 0)
            {
                //verifica a idade se for maior ou igual a 18 ele efetuara o saque de qualquer valor .. se nao ele limitara em 
                if (this.Titular.Idade >= 18)
                {
                    this.Saldo -= valor;
                }
                else
                {
                    if (valor <= 200)
                    {
                        this.Saldo -= valor;
                    }
                    else
                    {
                       //ele nao efetua o saque pois usuario é menor de 18
                    }
                }
            }
            else
            {
               //se o valor a sacar for maior que o saldo .. ou um valor negativo ele entrara aqui .. e o saque não será efetuado..
            }
        }

Olá, Bruno! A lógica do método Saca propriamente dito eu havia entendido. Fiquei em dúvida com relação ao código do botão, mas acho que agora clareou:

        Conta c = new Conta();
        c.Deposita(100.0);

        // agora vamos testar o saque
        if(c.Saca(150.0))
        {
             MessageBox.Show("Saque realizado com sucesso!!");
        }
        else
        {
             MessageBox.Show("Não foi possível realizar a operação de saque");
        }

Já que o valor a ser sacado é maior que o valor do saldo, cairemos no segundo messagebox, correto?

solução!

Acho que é isso mesmo. Se seu metodo saca retornar true.. deu certo, se não ele a avisa que nao foi possível realizar.. a logica é essa mesma..