Beruflich Dokumente
Kultur Dokumente
ORIENTADA POR
OBJETOS
RELACIONAMENTOS ENTRE CLASSES
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Objetos e objetos
3
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Relacionamentos
4
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Associação
6
Representação da associação
Pessoa Restaurante
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Agregação
7
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Agregação
8
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Agregação
9
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Composição
10
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Composição
11
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Composição
12
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Agregação x composição
14
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Agregação x composição
15
Divisão sutil:
O mesmo relacionamento pode acontecer como
agregação ou composição, dependendo do contexto
(regras de negócio)
Ex: Motor → Carro
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Cardinalidades de relacionamentos
16
um-para-um
Ex: um curso tem um coordenador
Curso Coordenador
1 1
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Cardinalidades de relacionamentos
17
um-para-muitos
Ex:um departamento tem muitos professores, mas um
professor está alocado a um departamento apenas
Departamento Professor
1 *
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Cardinalidades de relacionamentos
18
muitos-para-muitos
Ex:um professor tem muitos alunos e um aluno tem
aulas com vários professores
Aluno Professor
* *
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Cardinalidades de relacionamentos
19
um-para-um
Ex: um curso tem um coordenador
um-para-muitos
Ex: um departamento tem muitos professores, mas um
professor está alocado a um departamento apenas
muitos-para-muitos
Ex: um professor tem muitos alunos e um aluno tem aulas
com vários professores
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Composição, agregação, associação
20
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Composição, agregação, associação
21
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Composição, agregação, associação
22
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Composição, agregação, associação
23
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
24 Especialização e Herança
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Herança
26
Exemplos
Um professor é uma pessoa
Um aluno é uma pessoa
Um ônibus é um veículo
Um automóvel é um veículo
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Herança
27
Exemplos
Um professor é uma pessoa
Um aluno é uma pessoa
Um ônibus é um veículo
Um automóvel é um veículo
Representação gráfica
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
Herança
29
Programação Orientada Por Objetos - Prof. João Caram - Curso de Sistemas de Informação – PUC Minas
32 Herança e polimorfismo
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Polimorfismo
34
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Polimorfismo
35
Polimorfismo universal
de Inclusão
Paramétrico
Polimorfismo ad hoc1 1 - ad hoc |àdóque| (locução latina que significa "para isso"): Que
se destina a um fim específico
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Polimorfismo
36
Área de figuras
geométricas
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Polimorfismo
37
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Polimorfismo
38
- Resultados inesperados
Programação sem cuidado
Perda de desempenho (por causa da late binding)
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Polimorfismo universal de inclusão
39
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Polimorfismo universal de inclusão
40
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Polimorfismo universal de inclusão
41
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Polimorfismo universal de inclusão
42
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Polimorfismo universal de inclusão
43
Classe abstrata
Classe que contém métodos virtuais puros e, portanto,
não pode ser instanciada diretamente
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Polimorfismo
44
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Polimorfismo e métodos virtuais
45
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Polimorfismo e métodos virtuais
46
Método virtual
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Polimorfismo e métodos virtuais
47
Método virtual
Implementações polimórficas
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Polimorfismo e métodos abstratos
48
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
49
Classe abstrata
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Implementação
50
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Sintaxe
51
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
52 Modificadores de classe
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Modificadores de classes (C#)
54
Public
Visibilidade total. Pode ser acessada por qualquer
assembly.
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Modificadores de classes
55
Static
Especifica que a classe somente tem membros estáticos. Não
pode ser instanciada.
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Modificadores de classes
56
Abstract
Classes abstratas: definem modelos para classes filhas. Não
podem ser instanciadas.
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Modificadores de classes
57
Partial
Permite que a classe tenha seu escopo dividido em dois ou
mais arquivos.
Uso mais comum: interface gráfica x lógica
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Modificadores de classes
58
Sealed
Não permite que a classe seja herdada.
Pode ser também utilizado com métodos que não devem ser
sobrescritos.
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
Modificadores de classes (Java)
59
static
PUC Minas – Curso de Sistemas de Informação – Programação Orientada por Objetos – Prof. João Caram
OBRIGADO.
Dúvidas?