Upload
luna-santana-carlos
View
213
Download
0
Embed Size (px)
Citation preview
Orientação a Objetos
1
Paradigma de Orientação a Objetos usado para representar o mundo real
Mundo Real : entidades que se interagem
Conceitos AnterioresConceitos Anteriores
2
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.
EntidadesEntidades
3
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?
ObjetosObjetos
4
ObjetosObjetos
5
Objetos◦ São instâncias de classes, com valores diferentes◦ Representa uma entidade do mundo real◦ Cada objeto tem:
Identidade Estado Comportamento
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
AtributosAtributos
6
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:
Métodos x AtributosMétodos x Atributos
7
Objeto:Funcionário◦ Atributos:nome,cpf◦ Método: baterPonto()
◦ Quais os métodos de um objeto que representa a entidade Professor?
MétodosMétodos
8
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.
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
MétodosMétodos
9
ClassesClasses
10
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.
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
Classe::RepresentaçãoClasse::Representação
11
Classe::RepresentaçãoClasse::Representação
12
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.
Objetos x ClassesObjetos x Classes
13
AbstraçãoAbstração
14
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
Classificação/Instanciação
Generalização/Especialização
Associação
Agregação
Composição
AbstraçãoAbstração
15
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)
Abstração::ClassificaçãoAbstração::Classificação
16
Criar uma Classe “Televisão”
class Televisao{
int tamanho;int canal;boolean ligada;
boolean ligar(){} boolean desligar(){}}
Abstração::ClassificaçãoAbstração::Classificação
17
Atributos
Métodos
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”, 4565456, 31)
◦ Como pessoaObjeto é do tipo Pessoa ela pode ter valor os atributos como:nome = “Fred”, cpf = 4565456 e idade = 31
Abstração::InstanciaçãoAbstração::Instanciação
18
MédicoClasse 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
Abstração::EspecializaçãoAbstração::Especialização
19
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
Abstração::GeneralizaçãoAbstração::Generalização
20
HerançaHerança
21
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
Abstração::HerançaAbstração::Herança
22
Herança é, na verdade, uma classe derivada de outra classe.
Abstração::HerançaAbstração::Herança
23
Abstração::HerançaAbstração::Herança
24
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.
Abstração::AssociaçãoAbstração::Associação
25
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
Abstração::Composição/AgregaçãoAbstração::Composição/Agregação
26
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
Abstração::Composição/AgregaçãoAbstração::Composição/Agregação
27
Agregação compartilhada Composiçã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.
Abstração::Composição/AgregaçãoAbstração::Composição/Agregação
28
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.
Abstração::Composição/AgregaçãoAbstração::Composição/Agregação
29
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
Abstração::Composição x AgregaçãoAbstração::Composição x Agregação
30
Abstração::Composição/AgregaçãoAbstração::Composição/Agregação
31
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 ProfessorUma Disciplina tem Sala
Abstração::Composição/AgregaçãoAbstração::Composição/Agregação
32
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 ItensUm Pedido tem Clientes
Abstração::Composição/AgregaçãoAbstração::Composição/AgregaçãoLink: vale a pena lerLink: vale a pena ler
33
http://imasters.com.br/artigo/18901/uml/uml-composicao-x-agregacao/
EncapsulamentoEncapsulamento
34
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
EncapsulamentoEncapsulamento
35
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
Abstração::PolimorfismoAbstração::Polimorfismo
36
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
Abstração::PolimorfismoAbstração::Polimorfismo
37
Polimorfismo◦ Permite o envio de uma mesma mensagem a
objetos distintos, onde cada objeto responde da maneira mais apropriada
Tipos de polimorfismo
Abstração::PolimorfismoAbstração::Polimorfismo
38
Sobrecarga* parâmetros distintos passados ao mesmo método
SobreposiçãoMesmo métodos, implementações diferentes em classes distintas