Uma instância ou o processo de instanciação é a criação de um objeto a partir de uma classe. É o exato momento em que um espaço na memória é alocado para que o objeto o ocupe e manipule seus dados lá. Na instanciação a classe é lida e, de acordo com o que está determinado nela, o objeto é criado e passa a ser um item operante na aplicação. Vamos aproveitar a classe Carro, que criamos anteriormente, e fazer a instanciação dela.
O comando é muito simples, vejam:
Carro objCarro = new Carro();
Definimos o tipo, depois o nome, e em seguida, com o comando new, criamos uma instância dele. Vejam o código comentado no Visual C#:
Após esse procedimento temos um objeto do tipo Carro alocado na memória, cujo nome é objCarro, ou seja, a partir desse nome é possível acessar seus métodos.
Vamos dar uma olhada na classe Carro:
Podemos ver que ela possui dois métodos, que são o setCor e o getCor. Agora vamos, a partir do objeto criado e que chamamos de objCarro, acessar esses métodos e definir uma cor para nosso carro. Basta que digitemos o nome do objeto e acrescentemos um ponto, e em seguida o nome do método que gostaríamos de chamar. O IntelliSense do Visual C# já se encarrega de exibi-los entre os métodos disponíveis, conforme figura abaixo:
Destaquei os dois métodos que criamos, pois os outros são métodos padrão do C#.
Vamos definir a cor desse carro para "azul".
Teoricamente temos, nesse instante, um objeto alocado na memória, do tipo Carro, cujo nome é objCarro e com a propriedade cor definida como Azul, mas para vermos se isso funcionou, vamos exibir, em uma caixa de diálogo, o valor definido na propriedade cor desse objeto. Para isso farei a inserção da seguinte linha de comando, abaixo da definição da cor do carro.
MessageBox.Show("A cor do objeto carro, cujo nome é objCarro é: " + objCarro.getCor());
Então o bloco completo de comandos ficará assim:
private void button1_Click(object sender, EventArgs e)
{
Carro objCarro = new Carro();
objCarro.setCor("Azul");
MessageBox.Show("A cor do objeto carro, cujo nome é objCarro é: " + objCarro.getCor());
}
Vejam que chamei o método getCor() do objeto objCarro para retornar o valor da propriedade cor.
Agora vamos executá-lo:
Vejam que, de fato, a cor resgatada desse objeto foi o Azul, que é o valor que definimos na linha: objCarro.setCor("Azul");
O que é preciso que fique muito claro, e se você for um programador acostumado a utilizar métodos procedimentais terá um pouco de resistência em aceitar, é que a classe Carro NÃO possui, nesse momento, a cor "azul" definida dentro da dela, mas sim o objeto que criamos a partir dela e chamamos de objCarro possui o valor Azul em sua propriedade responsável por armazenar a cor. Para tentar deixar isso bem claro, criarei outro objeto, também do tipo Carro, de nome xyz, e darei outra cor para ele, vejam:
Vamos à execução desse código:
Agora ficou claro que temos dois objetos do tipo Carro na memória. Um deles chama-se objCarro e sua propriedade cor possui o valor “Azul”, e o outro chama-se xyz e tem em sua propriedade cor o valor “Vermelha”.
Nós poderíamos criar quantos objetos do tipo "Carro" quiséssemos e todos teriam a mesma estrutura, pois foram criados a partir da mesma classe, mas poderiam receber valores diferentes para suas propriedades. Vejam a imagem abaixo, que resume bem o que é o processo de instanciação:
Podemos criar quantos objetos do tipo "Carro" quisermos, mas cada um deles poderá ter seus próprios dados, como Marca e Modelo.
Percebam o quanto isso facilita a criação do código. Se estivéssemos criando uma classe Paciente, que armazenaria dados de pacientes para um software de gerenciamento de uma clínica, por exemplo, poderíamos criar as seguintes propriedades:
Nome
Endereço
Idade
E-mail
Sintomas
Data da Consulta
Enfim, dessa forma poderíamos instanciar esse objeto e manipular essas informações de forma bastante organizada e, ao término deste ciclo, poderíamos resgatar as informações previamente armazenadas e salva-las em um banco de dados.
No tópico seguinte começarei a falar sobre os quatro pilares de sustentação da POO, que são Abstração, Encapsulamento, Herança e Polimorfismo. Todos eles são de vital importância para a criação de códigos eficientes e robustos em qualquer linguagem de programação orientada a objetos.
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?
Space Invaders
O título Space Invaders, lançado em 1980, fez tanto sucesso em todo o mundo que as pessoas compravam o console Atari apenas para poderem jogá-lo em casa. Saiba mais sobre este incrível título clicando aqui.
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.
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.
Space Invaders
A partida mais longa do clássico Space Invaders durou incríveis 38 horas e 32 minutos e esta façanha foi conseguida por um jogador de apenas 12 anos! O jogo, claro, podia ser pausado para alimentação e descanso, mas ainda assim o recorde, estabelecido no dia 02/09/1980, ainda não foi quebrado. Saiba mais.
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.
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.
Duck Hunt
Ao completar o nível 99 do jogo Duck Hunt, para Nintendo, o jogo retorna ao primeiro nível, mas um bug impede que se acerte os patos neste recomeço. Este é um exemplo do que é chamado no mundo dos games de "Kill Screen".
Mario e seu bigode
O personagem Mario só possui bigode porque quando ele foi criado, em 1981, a resolução de tela dos equipamentos disponíveis não permitia que fosse desenhada uma boca, então os desenvolvedores fizeram o grande bigode para contornar essa limitação tecnológica.
Tomb Raider - O Filme
Considerando todas as adaptações de jogos de videogame para o cinema, a mais bem sucedida foi Lara Croft: Tomb Raider, lançado em 2001 e que faturou 274 milhões de dólares. Ele foi dirigido por Simon West e estrelado pela bela Angelina Jolie.
Mario em Donkey Kong
O personagem Mario surgiu pela primeira vez no mundo dos games em um jogo chamado Donkey Kong, lançado em 1981. Mario, que naquela época se chamava Jumpman, não era o personagem principal do jogo, mas ele se tornaria um dos mais famosos personagens do mundo dos games. Saiba mais.
Final Fantasy X
O jogo Final Fantasy X para o Sony Playstation 2 vendeu, apenas no dia do seu lançamento, 1.455.732 cópias, estabelecendo um recorde de vendagem para as primeiras 24 horas de um game. Méritos da SquareSoft, que desenvolveu um excelente produto!
Pac Man
Apenas no ano de 1982, o clássico Pac Man vendeu mais de 400 mil máquinas de fliperama em todo o mundo e recebeu cerca de 7 bilhões de moedas nestas máquinas. Saiba mais.