Construtores são métodos chamados automaticamente sempre que um novo objeto é criado. O principal papel de um construtor é executar uma sequência de comandos que darão valores iniciais ao objeto. Vejam, na imagem abaixo, o exemplo de um método construtor:
A primeira observação importante é que os métodos construtores não possuem nenhum tipo de retorno de dado. Apenas relembrando, sempre que criamos uma função que processará alguma informação e enviará um resultado ao término de sua execução, devemos definir o tipo de retorno. Se a função fará um cálculo e retornará um número inteiro, a função deve especificar o tipo "int" em sua estrutura. Se vai retornar uma frase, palavra ou caractere, deve conter o tipo "string" na estrutura, enfim, é preciso que deixemos explícito o tipo de dado que será enviado. Caso ela não retorne nenhuma informação, devemos ainda assim especificar o tipo "void". Nos métodos construtores isso não é necessário, aliás, eles não devem conter esta especificação.
Na imagem acima podemos observar também que a partir da classe Carro, criada no tópico sobre Classes, defini alguns valores padrão para ela, que foram a cor Branca e a marca FIAT. Dessa forma, sempre que o método construtor for chamado e um novo objeto do tipo Carro surgir, ele terá esses dados inseridos automaticamente em seus atributos. Vejamos a execução disso com o seguinte código:
Vamos executar esse código e ver se, de fato, os valores que definimos como padrão são inseridos no objeto:
Aqui podemos ver que a cor Branca foi realmente inserida e, ao clicar no OK surge a nova caixa de diálogo, conforme imagem abaixo:
A imagem acima mostra que nos foi retornada a marca FIAT, que definimos como padrão no método construtor. Claro que esses são apenas os valores criados no “nascimento” do objeto e, conforme citei anteriormente, eles podem ser alterados. Vou chamar o método setCor alterando a cor para Azul, vejam:
E executando esse código temos o seguinte retorno:
Agora podemos observar que a nova cor realmente é o Azul. Com isso eu gostaria de deixar claro que o papel de método contrutor é criar o objeto e lhe atribuir valores iniciais, mas também é importante destacar que esses valores podem ser (e quase sempre serão) alterados ao longo da execução do programa.
Para encerrar o assunto Construtores, vale ressaltar que sempre que um objeto é criado o método construtor do mesmo é chamado. Bem, mas o que aconteceria se não fizéssemos o método construtor e mesmo assim tentássemos criar um objeto? Vou anular nosso método construtor, deixando o código da seguinte forma:
Agora vamos executar o código:
Notem que o código foi executado sem nenhum erro mas, quando a execução chega no trecho onde ele deveria mostrar a cor padrão do nosso objeto do tipo Carro, o campo aparece vazio. A primeira impressão que isso pode causar é que os métodos construtores não são essenciais, já que o código foi executado sem problemas e o valor não foi exibido apenas porque não havia nada na propriedade cor do objeto criado.
Bem, na verdade não é bem assim que as coisas acontecem. O C#, que é a linguagem usada nesses testes, é inteligente o suficiente para detectar que a classe Carro não possuía um método construtor, então, no momento da compilação ele cria um por conta própria e define todas as suas propriedades com valores vazios. Se fossem dados numéricos ele atribuiria valores zero como padrão. Então, o que é importante que fique claro é que mesmo que você não defina um método construtor, ele estará presente para inicilizar seu objeto, caso contrário não seria possível executar o código. De qualquer forma, deixar de criar esses métodos contando com o auxílio do compilador não é uma boa prática de programação. Lembre-se de sempre criá-lo, até porque pode haver situações em que os métodos construtores precisem receber parâmetros de inicialização e, nesse caso o compilador não poderá ajudar. Falarei mais sobre isso no próximo tópico.
HARDWARE
Entendendo o seu computador
O que há dentro do meu computador?
Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.
Você Sabia?
Tetris

O título Tetris detém o recorde de jogo mais adaptado de todos os tempos. No total foram mais de 60 plataformas diferentes que receberam alguma versão do quebra-cabeças criado por Alexey Pajitnov. Conheça mais sobre este incrível jogo clicando aqui.
Galaxy Game

As primeiras máquinas de fliperama do mundo a utilizarem moedas, chamadas de Galaxy Game, custavam mais de 20 mil dólares para serem produzidas. Saiba mais sobre elas aqui.
Recorde de patentes

A IBM detém o recorde de patentes em um único ano, atingindo a marca de 4186 registros no ano de 2008. Clique aqui e saiba mais sobre esta gigante do mundo da tecnologia.
Senhas

Digitar senhas em computadores de uso coletivo é extremamente perigoso, pois além de softwares de monitoramento, existem dispositivos de hardware que podem capturar suas senhas. Evite ao máximo acessar sites de bancos a partir destes computadores. Veja mais aqui.
Máquina de Pascal

A Máquina de Pascal, criada em 1642 pelo filósofo, físico e matemático francês Blaise Pascal, é reconhecida como o primeiro computador do mundo e ele foi criado com o objetivo de calcular impostos. Saiba mais.
ENIAC

O ENIAC, primeiro computador valvulado do mundo, possuía 17.000 válvulas, 500.000 pontos de solda, 30 toneladas de peso e ocupava uma área de 180 metros quadrados. Clique aqui e conheça mais sobre a história dos computadores.
Ultima Online

Criar um jogo é muito mais complexo do que parece. São milhares, às vezes, milhões de linhas de código. Isso não é exagero! Apenas o jogo Ultima Online possui 6.006.313 linhas de programação, totalizando 25.103.295 palavras
Música tema do Blanka

Até a primeira metade dos anos 90 era bastante comum que as trilhas sonoras dos games fossem criadas por mulheres e a responsável pelas músicas do clássico Street Fighter 2 foi Yoko Shimomura. Segundo ela, o ritmo "Tararirarin" da música tema do personagem Blanka, do Brasil, veio à sua cabeça enquanto ela estava no trem a caminho da Capcom.










