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

[Dúvida] Parametro de classe no construtor

Boa tarde,

Quando crio um metodo construtor que ira requisitar o Titular = Titular, que tipo de argumento sera necessario passar na hora da construcao?

Vou inserir abaixo parte do meu codigo para ver se alguem consegue esclarecer um pouco a mais para mim.

ContaCorrente:

    public class checkingAccount
    {
        private int bankBranch;
        private string accountNumber;
        private Client accountHolder;
        private double accountBalance;
        public static int totalCheckingAccount { get; private set; }

        //Constructor
        public checkingAccount(int bankBranch, string accountNumber, double accountBalance)
        {
            this.bankBranch = bankBranch;
            this.accountNumber = accountNumber;
            this.accountBalance = accountBalance;
            totalCheckingAccount++;
        }
        ....
    }

Cliente:

    public class Client
    {
        public string Name { get; private set; }    //Auto-Implemented Properties
        public string Cpf { get; private set; }     //Auto-Implemented Properties
        public string Occupation { get; private set; }  //Auto-Implemented Properties

        public Client(string Name, string Cpf, string Occupation)
        {
            this.Name = Name;
            this.Cpf = Cpf;
            this.Occupation = Occupation;
        }
    }

Program.cs

checkingAccount accountAndre = new checkingAccount(15, "1010-X", 100);
accountAndre.AccountHolder = new Client("Andre Silva", "123456789-1", "Analista");

Agora, fazendo como requisitado e fazendo um construtor que recebe todos os campos necessarios, inclusive o Cliente, ficaria desta forma a seguir, porem nao estou conseguindo fazer funcionar.

Quando coloco no construtor a requisicao de Client accountHolder, la na hora que vou criar o objeto nao estou sabendo que tipo de parametro passar. Exemplo:

accountHolder.cs

        //Constructor
        public checkingAccount(Client accountHolder, int bankBranch, string accountNumber, double accountBalance)
        {
            this.accountHolder = accountHolder;
            this.bankBranch = bankBranch;
            this.accountNumber = accountNumber;
            this.accountBalance = accountBalance;
            totalCheckingAccount++;
        }

Program.cs

checkingAccount accountAndre = new checkingAccount(??????? ,15, "1010-X", 100);
accountAndre.AccountHolder = new Client("Andre Silva", "123456789-1", "Analista");

Se coloco uma string por exemplo, ele informa que nao e possivel converter de string para 'ByteBank.AccountHolder.Client'.

Espero que de para entender a minha duvida e que possam me ajudar.

3 respostas

Boa noite Igor,

a sua questão é bastante interessante e a resposta não é tão intuitiva quanto parece. Quando você cria um construtor que recebe como argumento um objeto de uma classe, é necessário que você instancie este objeto antes de invocar o método construtor que a recebe como parâmetro.

checkingAccount accountAndre = new checkingAccount(??????? ,15, "1010-X", 100);
accountAndre.AccountHolder = new Client("Andre Silva", "123456789-1", "Analista");

Utilizando o seu código, na minha opinião, uma forma seria a seguinte:

Client accountHolder = new Client("Andre Silva", "123456789-1", "Analista");
checkingAccount accountAndre = new checkingAccount(accountHolder ,15, "1010-X", 100);

Boa tarde Bruno,

Desculpa pela demora na resposta, estava meio ocupado.

Sua explicacao foi muito clara. Acredito entao que seja uma questao de preferencia entao na forma que se queira desenvolver?

Agredeco pela sua atencao.

solução!

Bom dia Igor, tudo Bom?

Mestre você tem que passar um objeto do tipo cliente:

checkingAccount accountAndre = new checkingAccount(??????? ,15, "1010-X", 100);
accountAndre.AccountHolder = new Client("Andre Silva", "123456789-1", "Analista");
Client clientAndre = new Client("Andre Silva", "123456789-1", "Analista");**
checkingAccount accountAndre = new checkingAccount(clientAndre ,15, "1010-X", 100); 

Espero que tenha ajudado e, qualquer coisa, estamos à disposição!

Abraços e bons estudos 😄


Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!