Objetos

Computação II - Ciência da Computação


Prof.: Danilo S. Carvalho

Nessa aula, vamos entender um pouco mais sobre o que está por trás das instâncias das classes que criamos.


Ao fim da aula, teremos uma noção mais clara de como concretizar os nossos tipos e o que esperar das nossas variáveis.

Já aprendemos anteriormente que todas as instâncias que criamos a partir de uma classe são chamadas de objetos.

Logo o código "new Livro()" cria um novo objeto do tipo Livro.

Também aprendemos que uma classe representa uma abstração de elementos do mundo real ou virtual, na forma de um conceito, como por exemplo o conceito de um carro.

A instanciação é uma operação oposta: a concretização de um conceito como um elemento de dados e seu respectivo comportamento, na memória do computador.

No caso da classe "Carro", um objeto representa um carro em particular, com número de chassi, cor definida, etc., ou seja, possuindo uma identidade única.

Se os atributos da classe carro fossem detalhados o suficiente, até mesmo o desgaste das peças poderia ser representado.

E aqui está a ideia central dos objetos: estado

Um objeto representa o estado de uma entidade individual associada a um conceito (classe) no programa.


Quando orientamos o nosso código a objetos, olhamos para o programa como uma sequência de operações que criam, manipulam, mantém e armazenam o estado de um conjunto de entidades, que usamos para resolver os nossos problemas.

O código abaixo, por exemplo

Pode ser interpretado como a operação de emplacamento de um carro novo, resultando na mudança de estado desse carro, que agora pode trafegar regularmente nas vias públicas.

Pensando dessa forma, precisamos recorrer a menos traduções para estruturas lógicas estritamente computacionais, e a programação fica mais simples.

                        
                            Carro meuCarro = new Carro();
                            
                            meuCarro.placa = new Placa("ABC-1234");
                        
                    

Agora entendemos um pouco melhor o porque queremos lidar com objetos.


Falta então entender como explicamos o comportamento ou capacidades desses objetos. Estamos quase lá.


Continuem o exercício proposto na aula sobre classes (ex: restaurante), mas aplicando as ideias discutidas nessa aula.

Perguntas:

  1. Em uma fábrica de carros está ocorrendo uma grande demanda por carros de cor azul, logo precisa-se criar muitos carros com essa característica. De que forma poderiamos fazer isso em Java?
  2. Quais seriam as implicações de se fazer um "recall" de objetos com defeito de fabricação no Java?

Até a próxima aula!