A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

20/04/2017 Orientação a Objetos 1 1.

Apresentações semelhantes


Apresentação em tema: "20/04/2017 Orientação a Objetos 1 1."— Transcrição da apresentação:

1 20/04/2017 Orientação a Objetos 1 1

2 20/04/2017 Conceitos Anteriores Paradigma de Orientação a Objetos usado para representar o mundo real Mundo Real : entidades que se interagem 2 2

3 Entidades Entidade = Objeto
20/04/2017 Entidades Entidade = Objeto Alguma coisa que tenha sua própria existência, características e que apresente alguma função dentro do mundo real São abstrações dos objetos existentes no mundo real; Possuem os mesmos comportamentos; Possuem os mesmos estados; Podem representar os objetos no mundo real em vários níveis de abstração: Depende de decisões do observador do mundo. 3 3

4 Objetos Objetos possuem estados (atributos) e comportamento (métodos):
20/04/2017 Objetos Objetos possuem estados (atributos) e comportamento (métodos): Uma porta tem: Estados: aberta, fechada; Comportamento: abrir, fechar; E um carro: Que atributos e comportamentos ele tem? 4 4

5 Objetos Objetos São instâncias de classes, com valores diferentes
20/04/2017 Objetos Objetos São instâncias de classes, com valores diferentes Representa uma entidade do mundo real Cada objeto tem: Identidade Estado Comportamento 5 5

6 Atributos Características que compõem um objeto Objeto:Funcionário
20/04/2017 Atributos Características que compõem um objeto Podem ser um simples valor ou outro Objeto Objeto:Funcionário Atributos:nome,cpf Objeto:Departamento Atributos:funcionário,localização 6 6

7 Métodos x Atributos Objeto:Funcionário
20/04/2017 Métodos x Atributos Os atributos vêm do conceito de abstração: Propriedades essenciais para representar um objeto real; Os métodos vêm da descrição das funções do objeto: Objeto:Funcionário Atributos:nome,cpf Método: baterPonto() Quais os métodos de um objeto que representa a entidade Professor? 7 7

8 20/04/2017 Métodos Método É uma operação que realiza ações e *modifica os valores dos atributos do objeto responsável pela sua execução *Nem sempre um método modifica o valor dos atributos ou altera o comportamento, pois pode ser apenas um método de consulta. 8 8

9 20/04/2017 Métodos Atributos auxiliares podem ser necessários para auxiliar a implementação dos métodos... Mas isso deve ser evitado, pois pode comprometer a relação do objeto real com a sua representação abstrata 9 9

10 20/04/2017 Classes Conjunto de seres, objetos ou fatos que apresentam um ou mais aspectos distintivos em comum [Houaiss]; Grupo ou coleção de coisas que se distinguem das outras pela natureza, uso etc. Define o grupo de características (atributos) dos objetos pertencentes a ela, específica quais ações (métodos) podem ser executadas, qual o seu relacionamento com outras classes. 10 10

11 Classe::Representação
20/04/2017 Classe::Representação UML (do inglês, Unified Modeling Language) Representação bastante difundida para representar graficamente classes em um modelo orientado a objetos Utilizada para representação de muitas etapas durante a análise de um sistema Formada por vários diagramas Um deles é o diagrama de classes, em que classes são representadas graficamente 11 11

12 Classe::Representação
20/04/2017 Classe::Representação 12 12

13 Objetos x Classes São estruturas relacionadas, mas bem distintas:
20/04/2017 Objetos x Classes São estruturas relacionadas, mas bem distintas: Objeto é uma instância de uma classe; Objeto pertence a uma classe; Os objetos de uma mesma classe se diferenciam pelo conteúdo dos seus atributos; Objetos existem apenas na memória, quando o programa está em execução. 13 13

14 20/04/2017 Abstração Abstração Habilidade de modelar características do mundo real Ignorando detalhes não relevantes Visando representar uma realidade complexa num modelo mais simplificado “Uma abstração depende mais do observador do que do objeto observado” Só representamos características que nos interessem para determinado contexto 14 14

15 Abstração Classificação/Instanciação Generalização/Especialização
20/04/2017 Abstração Classificação/Instanciação Generalização/Especialização Associação Agregação Composição 15 15

16 Abstração::Classificação
20/04/2017 Abstração::Classificação Análise das características de um objeto, definindo sua classe pertencente Característica de cada entidade Sala de aula: bancas, alunos, professor, quadro, Salas vizinhas, categoria É a criação da classe em si! Definição de atributos (propriedades) e métodos (comportamentos) 16 16

17 Abstração::Classificação
20/04/2017 Abstração::Classificação Criar uma Classe “Televisão” class  Televisao{ int tamanho; int canal; boolean ligada; boolean ligar(){} boolean desligar(){} } Atributos Métodos 17 17

18 Abstração::Instanciação
20/04/2017 Abstração::Instanciação Construir um objeto com todas as características de uma mesma classe significa que está fazendo uma Operação de Instanciação. Classe: Pessoa com atributos nome, cpf e idade Objeto: pessoaObjeto( “Fred”, , 31) Como pessoaObjeto é do tipo Pessoa ela pode ter valor os atributos como: nome = “Fred”, cpf = e idade = 31 18 18

19 Abstração::Especialização
20/04/2017 Abstração::Especialização Médico Classe mãe Dermatologista, infectologista, pneumologista, etc. Classes filhas ou especializadas Classe mais especializada herda características da geral/mãe Se a Classe Médico tem CRM como atributo, então a classe Dermatologista herda automaticamente o CRM como atributo 19 19

20 Abstração::Generalização
20/04/2017 Abstração::Generalização De maneira inversa: A partir de um grupo de classes Identificar características que são comum a todas Engenheiro de Software -> Engenharia de Software IPhone 4S -> IPhone4 Morcego -> Mamífero 20 20

21 20/04/2017 Herança Herança É o mecanismo pelo qual pode-se definir uma nova classe de objetos a partir de uma classe já existente Esta nova classe poderá aproveitar o comportamento e possíveis atributos da classe estendida A classe sendo refinada é chamada de superclasse ou classe base, enquanto que a versão refinada da classe é chamada uma subclasse ou classe derivada 21 21

22 20/04/2017 Abstração::Herança Herança é, na verdade, uma classe derivada de outra classe. 22 22

23 20/04/2017 Abstração::Herança 23 23

24 Abstração::Herança Herança múltipla Java não tem herança múltipla
20/04/2017 Abstração::Herança Herança múltipla Java não tem herança múltipla Herança múltipla, em orientação a objetos, é o conceito de herança de duas ou mais classes. Ela é implementada nas linguagens de programação C++ e em Python, por exemplo. A linguagem Java possui apenas herança simples (uma classe possui no máximo uma classe pai), mas permite que uma classe implemente várias interfaces. 24 24

25 Abstração::Associação
20/04/2017 Abstração::Associação Associação Simples As entidades envolvidas apresentam existências independentes, mas existe uma ligação entre elas Consiste na descrição genérica de uma ou mais ligações entre as classes, permitindo que objetos de uma classe utilizem recursos de outro objetos Lê-se: Um Cliente tem um Produto 25 25

26 Abstração::Composição/Agregação
20/04/2017 Abstração::Composição/Agregação Agregação / Composição A idéia de agregação ou composição estabelece a criação de novas classes de objetos a partir da junção de classes já existente Relação todo-parte Em UML: Agregação é representada por um losango vazado Composição representado por um losango fechado 26 26

27 ? Abstração::Composição/Agregação Agregação compartilhada Composição
20/04/2017 Abstração::Composição/Agregação ? Agregação compartilhada Composição 27 27

28 Abstração::Composição/Agregação
20/04/2017 Abstração::Composição/Agregação Agregação: estabelece uma relação todo-parte entre classes, sendo que a parte possa existir sem o todo. Ex: Carro e Roda. Uma Roda é parte de um Carro, porém pode a Roda existe por si só fora do Carro. Você pode por exemplo remover a roda de um carro para colocar em outro. 28 28

29 Abstração::Composição/Agregação
20/04/2017 Abstração::Composição/Agregação Composição: estabelece uma relação todo-parte entre classes, sendo que a parte NÃO existe sem o todo. Ex: Pedido e Itens de Pedido. Se você destruir o Pedido, os Itens são destruídos junto, eles não tem sentido se não houver um Pedido. 29 29

30 Abstração::Composição x Agregação
20/04/2017 Abstração::Composição x Agregação 1 - Se eu "deletar" o A, terei que "deletar" também o B ? Sim = composição Não = pode ser agregação ou nada... goto pergunta 2 2 - O objeto B tem alguma utilidade sozinho ? Sim = associação comum Não = agregação 30 30

31 Abstração::Composição/Agregação
20/04/2017 Abstração::Composição/Agregação Agregação / Composição O objetos contidos podem existir sem serem parte do objeto que os contém Exemplo: Um Professor continuará a existir, mesmo que não haja o conceito Disciplina Lê-se Uma Disciplina tem Professor Uma Disciplina tem Sala 31 31

32 ? Abstração::Composição/Agregação Agregação / Composição
20/04/2017 Abstração::Composição/Agregação Agregação / Composição O objetos contidos não fazem sentido fora do contexto do objeto que os contém Exemplo: Um pedido contem itens e um Cliente vinculado. Se você destruir o pedido, os itens são destruídos junto, pois eles não tem sentido fora do pedido ? Lê-se Um Pedido tem Itens Um Pedido tem Clientes 32 32

33 Abstração::Composição/Agregação Link: vale a pena ler
20/04/2017 Abstração::Composição/Agregação Link: vale a pena ler 33 33

34 20/04/2017 Encapsulamento Consiste em separar os aspectos externos de um objeto dos detalhes internos de implementação do objeto Evita que objetos possuam grandes dependências entre si, de modo que uma simples mudança em um objeto possa trazer grandes efeitos colaterais e problemas para outros objetos Em POO, o acesso a componentes de um objeto é controlado e, especialmente, os atributos de um objeto só devem ser modificados pelos métodos do próprio objeto 34 34

35 20/04/2017 Encapsulamento Aplicando políticas de visibilidade sobre atributos e métodos garante-se o encapsulamento. Atributos e métodos podem ser públicos, privados ou protegidos 35 35

36 Abstração::Polimorfismo
20/04/2017 Abstração::Polimorfismo Polimorfismo É originário do grego, e quer dizer “muitas formas” Significa que um mesmo tipo de objeto, sob certas condições, pode realizar ações diferentes ao receber uma mesma mensagem 36 36

37 Abstração::Polimorfismo
20/04/2017 Abstração::Polimorfismo Polimorfismo Permite o envio de uma mesma mensagem a objetos distintos, onde cada objeto responde da maneira mais apropriada 37 37

38 Abstração::Polimorfismo
20/04/2017 Abstração::Polimorfismo Tipos de polimorfismo Sobrecarga * parâmetros distintos passados ao mesmo método Sobreposição Mesmo métodos, implementações diferentes em classes distintas 38 38


Carregar ppt "20/04/2017 Orientação a Objetos 1 1."

Apresentações semelhantes


Anúncios Google