SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri [email protected] www.eduardosilvestri.com.br Prof. Silvestri – todos os direitos reservados Orientação a Objetos Prof. Silvestri – todos os direitos reservados Conceitos - O que são Objetos? - Objeto: *“-1. Tudo que se oferece aos nossos sentidos ou à nossa alma. 2. Coisa material: Havia na estante vários objetos. 3. Tudo que constitui a matéria de ciências ou artes. 4. Assunto, matéria. 5. Fim a que se mira ou que se tem em vista-”. - Objeto é a abstração de coisas do mudo real! Prof. Silvestri – todos os direitos reservados Objetos - Exemplos: Prof. Silvestri – todos os direitos reservados Objetos - Exemplos: Automóvel Prof. Silvestri – todos os direitos reservados Objetos Objetos são coisas do mundo real ou imaginário, que podemos de alguma forma identificar, como uma pedra, uma caneta, um copo, uma fada. Um objeto tem determinadas propriedades que o caracterizam, e que são armazenadas no próprio objeto. As propriedades de um objeto são chamadas ainda de atributos. O objeto interage com o meio e em função de excitações que sofre, realiza determinadas ações que alteram o seu estado (seus atributos). Os atributos de um objeto não são estáticos, eles sofrem alterações com o tempo. Para a POO, um objeto é uma entidade única que reúne atributos e métodos, ou seja, reúne as propriedades do objeto e as reações as excitações que sofre. Prof. Silvestri – todos os direitos reservados Objetos Quando temos uma instância de uma classe, nós temos um objeto desta classe. Instância é um outro nome que se dá ao objeto, geralmente se refere a um objeto específico. Identidade2: A identidade é uma propriedade que permite identificar univocamente um objeto. Os objetos se distinguem por sua própria existência, independente de seu conteúdo. Dois objetos são distintos mesmo que todos os seus atributos sejam iguais, ou seja, existe um único identificador para cada objeto. Prof. Silvestri – todos os direitos reservados PERGUNTAS 1. O que é um Objeto se visto pelo mundo real ? 2. O que é um Objeto se visto por O.O. ? 3. Podemos ter objetos iguais ? Porque ? Exemplifique. 4. O que é uma instancia ? Prof. Silvestri – todos os direitos reservados Conceitos - Objetos possuem 4 características: - Identidade: 2 objetos são distintos mesmo que todos os valores de seus atributos sejam iguais. - Classificação: Objetos com a mesma estrutura de dados (atributos) e mesmo comportamento (operações) são agrupados em uma classe. - Polimorfismo: A mesma operação pode atuar de modos diversos em classes diferentes. - Herança: Compartilhamento de atributos e operações entre classes com base em um relacionamento hierárquico. Prof. Silvestri – todos os direitos reservados Conceitos - * “A abordagem baseada em objetos preocupa-se primeiro em identificar os objetos contidos no domínio da aplicação e depois em estabelecer os procedimentos relativos a eles. Embora isso possa parecer mais indireto, o software baseado em objetos mantém-se melhor à medida que os requisitos evoluem, por se apoiar na própria estrutura fundamental do domínio da aplicação, ao invés de apoiar-se nos requisitos funcionais ad hoc de um único problema.” Prof. Silvestri – todos os direitos reservados Conceitos - 6 Características da Tecnologia Baseada em objetos: - Abstração: Concentração nos aspectos essenciais, próprios, de uma entidade e em ignorar suas propriedades acidentais. - Encapsulamento: Separação dos aspectos externos de um objeto, acessíveis por outros, dos detalhes internos da implementação que ficam ocultos dos demais. - Combinação de Dados e Comportamento: Polimorfismo dos objetos. - Compartilhamento: Compartilhar a estrutura comum (classes) por diversas subclasses sem redundâncias (Herança). - Ênfase na Estrutura de Objetos: Especificar o objeto e não como ele é utilizado. - Sinergia: Seguir todas as características simultaneamente. Prof. Silvestri – todos os direitos reservados Atributos Mas você sabe que o funcionamento do objeto televisor é extremamente complexo e que ao selecionar um novo canal, uma série de atributos internos são processados e alterados. Os atributos e funções internas estão encapsuladas, escondidas de você. Para a análise orientada a objeto, encapsulamento é o ato de esconder do usuário informações que não são de seu interesse. O objeto atua como uma caixa preta, que realiza determinada operação mas o usuário não sabe, e não precisa saber, exatamente como. Ou seja, o encapsulamento envolve a separação dos elementos visíveis de um objeto dos invisíveis. Prof. Silvestri – todos os direitos reservados Atributos A vantagem do encapsulamento surge quando ocorre a necessidade de se modificar um programa existente. Por exemplo, você pode modificar todas as operações invisíveis de um objeto para melhorar o desempenho do mesmo sem se preocupar com o resto do programa. Como estes métodos não são acessíveis ao resto do sistema, eles podem ser modicados sem causar efeitos colaterais. Prof. Silvestri – todos os direitos reservados Atributos A todo objeto podemos relacionar alguns atributos (propriedades). No exemplo do relógio a hora, a data. Na programação orientada a objeto, os atributos são definidos na classe e armazenados de forma individual ou coletiva pelos objetos. Exemplo: A hora de um relógio. Cada relógio tem uma hora, que pode ou não estar certa. Prof. Silvestri – todos os direitos reservados Métodos A todo objeto podemos relacionar determinados comportamentos, ações e reações. As ações ou comportamento dos objetos são chamadas na análise orientada a objeto de métodos,assim, um método é uma função, um serviço fornecido pelo objeto. Os comportamentos dos objetos são definidos na classe através dos métodos e servem para manipular e alterar os atributos do objeto (alteram o estado do objeto). Prof. Silvestri – todos os direitos reservados Métodos Mensagens: Foi falado que um objeto tem determinados atributos (propriedades) e métodos (ações), e que o objeto reage ao meio que o envolve de acordo com as excitações que sofre. Em um programa orientado a objeto as excitações são representadas por mensagens que são enviadas a um objeto. Uma mensagem pode ser gerada pelo usuário, por exemplo, ao clicar o mouse. Prof. Silvestri – todos os direitos reservados Métodos Protocolo: O protocolo é o conjunto de métodos que podem ser acessados pelo usuário, o conjunto de mensagens a que o objeto responde. Ou seja, o protocolo é o conjunto de métodos públicos da classe. Prof. Silvestri – todos os direitos reservados PERGUNTAS 1. O que é Abstração ? 2. O que é Encapsulamento ? 3. O que é Herança ? 4. O que é Atributo ? Exemplifique. 5. O que é Metodo ? Exemplifique. 6. O que são mensagens em O.O. ? 7. O que é protocolo em O.O ? Prof. Silvestri – todos os direitos reservados Classes Quando falamos de classes, lembramos de classes sociais, de classes de animais (os vertebrados), de classes de objetos da natureza, de hierarquias. Ou seja, uma classe descreve um grupo de objetos com os mesmo atributos e comportamentos, além dos mesmos relacionamentos com outros objetos. Para a análise orientada a objeto, uma classe é um conjunto de códigos de programação que incluem a definição dos atributos e dos métodos necessários para a criação de um ou mais objetos. A classe contém toda a descrição da forma do objeto, é um molde para a criação do objeto, é uma matriz geradora de objetos, é uma fábrica de objetos. Uma classe também é um tipo definido pelo usuário. Prof. Silvestri – todos os direitos reservados Conceitos Círculo Círculo R Abstração (x, y) Raio: Real x : Real y : Real Classe Mover(x, y) Aumentar(R) Atributos Métodos Prof. Silvestri – todos os direitos reservados Conceitos Dados privados Círculo Raio: Real x : Real y : Real Mover(x, y) Aumentar(R) Mover(x, y) Raio: Real x : Real y : Real Funções membro públicas Aumentar(R) Geralmente, funções são o único meio de acesso as atributos da classe!! Prof. Silvestri – todos os direitos reservados Conceitos Definição para dados privados Círculo Raio: Real x : Real y : Real Definição para dados públicos Mover(x, y) Aumentar(R) Prof. Silvestri – todos os direitos reservados Forma Geral de uma Classe class nome-da-classe { private: dados e funções privadas public: dados e funções públicas }; Prof. Silvestri – todos os direitos reservados Construtor e Destrutor - Construtor: Como o encapsulamento de dados é comum, o C++ permite aos objetos serem “inicializados” (iniciados) por si mesmo quando criados. Por exemplo, alocação dinâmica de memória. - Destrutor: Em diversos casos é necessário realizar alguma(s) ação(ões) para o objeto poder ser destruído. Por exemplo, “desalocação” dinâmica de memória. Prof. Silvestri – todos os direitos reservados Construtor e Destrutor Construtor e Destrutor são chamados automaticamente na criação de um Objeto! Prof. Silvestri – todos os direitos reservados PERGUNTAS 1. O que é uma Classe ? Exemplifique. 2. Qual a diferença entre dados privados e publicos ? 3. O que é um construtor ? 4. Como funciona um construtor ? 5. Para que serve um construtor ? Prof. Silvestri – todos os direitos reservados Dúvidas ? Prof. Silvestri – todos os direitos reservados MAPA CONCEITUAL Prof. Silvestri – todos os direitos reservados