prof. silvestri – todos os direitos reservados sistemas distribuidos aula 5 eduardo silvestri...

28
Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri [email protected] www.eduardosilvestri.com.br

Upload: internet

Post on 22-Apr-2015

122 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

SISTEMAS DISTRIBUIDOSAula 5

Eduardo [email protected]

www.eduardosilvestri.com.br

Page 2: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

Orientação a Objetos

Page 3: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

ConceitosConceitos

- 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!

Page 4: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

ObjetosObjetos

- Exemplos:

Page 5: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

ObjetosObjetos

- Exemplos:

Automóvel

Page 6: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

ObjetosObjetosObjetos 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.

Page 7: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

ObjetosObjetos

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.

Page 8: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

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 ?

PERGUNTAS

Page 9: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

ConceitosConceitos- 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.

Page 10: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

ConceitosConceitos

- * “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.”

Page 11: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

ConceitosConceitos

- 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.

Page 12: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

AtributosAtributosMas 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.

Page 13: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

AtributosAtributos

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.

Page 14: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

AtributosAtributos

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.

Page 15: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

MétodosMé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).

Page 16: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

MétodosMé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.

Page 17: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

MétodosMé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.

Page 18: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

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 ?

PERGUNTAS

Page 19: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

ClassesClassesQuando 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.

Page 20: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

ConceitosConceitos

R

(x, y)

Círculo

AbstraçãoRaio: Realx : Realy : Real

Mover(x, y)Aumentar(R)

Círculo

Classe

Atributos

Métodos

Page 21: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

ConceitosConceitos

Raio: Realx : Realy : Real

Mover(x, y)Aumentar(R)

Círculo

Raio: Realx : Realy : Real

Mover(x, y)

Aumentar(R)

Geralmente, funções são o único meio de acesso as atributos da classe!!

Dados privados

Funções membro públicas

Page 22: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

ConceitosConceitos

Raio: Realx : Realy : Real

Mover(x, y)Aumentar(R)

Círculo

Definição para dados privados

Definição para dados públicos

Page 23: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

Forma Geral de uma ClasseForma Geral de uma Classe

class nome-da-classe {

private:

dados e funções privadas

public:

dados e funções públicas

};

Page 24: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

Construtor e DestrutorConstrutor 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.

Page 25: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

Construtor e DestrutorConstrutor e Destrutor

Construtor e Destrutor são chamados automaticamente na criação de um

Objeto!

Page 26: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

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 ?

PERGUNTAS

Page 27: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

Dúvidas ?Dúvidas ?

Page 28: Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri silvestri@eduardosilvestri.com.br

Prof. Silvestri – todos os direitos reservados

MAPA CONCEITUAL