Eai Rogério, Beleza?
Construtor é diferente de método.
Se você tentar criar um método com o mesmo nome da classe, o compilador iria acusar o conflito. Da mesma forma que se você tentar criar uma propriedade ou um atributo, ele não vai permitir!
Um construtor obrigatoriamente deve ter o mesmo nome da classe, NÃO POSSUI nenhum retorno e pode ter quantos parametros for necessario.
Visão geral dos construtores
public ContaCorrente() { }
Um método obrigatoriamente você deve especificar o tipo de retorno, caso não exista, você define como void
.
Visão geral dos metodos
public void MetodoContaCorrente() { }
public int MetodoContaCorrente2() { return 0; }
Respondendo sua dúvida
como que quando eu instaciou isso no meu program, ele ja entende que precisso passar esses valores sendo que ele e um metodo dentro da classe?
Isso porque voce definiu no construtor os parametros que são necessários para criar um novo objeto do tipo ContaCorrente
, isso é uma regra, você não pode instanciar um objeto sem satisfazer o que foi definido em seu construtor.
Uma classe pode ter quantos construtores você quiser, mas se atente que sempre que um construtor é chamado, um novo objeto do tipo é criado!
Por exemplo:
Adicione um novo construtor sem parametros na sua classe ContaCorrente
, deve ficar igual abaixo.
public ContaCorrente(int agencia, int numero) { Agencia = agencia; Numero = numero; }
public ContaCorrente() { }
Agora sua classe possui dois construtores.
static void Main(string[] args)
{
ContaCorrente conta = new ContaCorrente(12, 10);
Console.WriteLine(conta.Agencia); // saida sera 12
//Você chamando o construtor novamente para conta, você perde todas as referencias que foram criadas no codigo acima
conta = new ContaCorrente();
Console.WriteLine(conta.Agencia); // saida sera 0, pois é o valor default do tipo int
}
Espero ter ajudado