3
respostas

Incremento de em Construtores

Dentro da classe ContaCorrente tenho o seguinte código.

public string Titular {get; set;} public int Agencia {get; set} public int Numero {get; set;} public static int TotalContasCriadas {get; set;}

public ContaCorrente(int agencia, int numero) { Agencia = agencia; Numero = numero TotalContasCriadas ++; }

public ContaCorrente(string titular, int agencia, int numero) { Titular = titular; Agencia = agencia; Numero = numero; TotalContasCriadas ++; }

Quando for instânciar essa Classe usando os dois Construtores terei duas contas criadas. Minha dúvida é: Quando for solicitado o número de contas criadas será somado os dois Construtores dando um total de duas contas criadas na propriedade TotalContasCriadas ?

3 respostas

Olá Edvaldo, tudo bom?

Então, não deve funcionar, visto que para que o incremento seja realizado, é necessário abrir uma nova instância da classe.

Ou seja:

//Essa é uma instância (Is1)
var teste =  new ContaCorrente(agencia:=1, conta:=2 );

//Essa é outra instância (Is2)
teste = new ContaCorrente(titular:="teste",  agencia:=1, conta:=2)

Explicando de forma mais específica, você não consegue utilizar 2 construtores desta forma porque cria instâncias separadas.

Uma outra forma de realizar essa tarefa, seria criar um construtor privado e fazer a chamada dele no construtor publico.

Espero ter ajudado, abraço.

Como o TotalContasCriadas é uma variável estática, ela pertence a classe e não a instância criada, desse modo como existe o incremento em ambos construtores, o resultado será 2.

Exemplo de visualização:

 ContaCorrente conta1 = new ContaCorrente(10, 10);

 ContaCorrente conta2 = new ContaCorrente("Teste", 11, 12);

 // O resultado exibido no console será 2
 Console.WriteLine(ContaCorrente.TotalContasCriadas);

 Console.ReadLine();

Desculpa, não visualizei que era uma variável estática, o Paulo Henrique está certo.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software