programação orientada a objetos relacionamento entre ...santanch/teaching/oop/... ·...

22
Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè Institute of Computing – UNICAMP Abril 2015 Picture by http://www.flickr.com/photos/crouchy69, 2010

Upload: others

Post on 03-Jun-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

Programação Orientada a Objetos

Relacionamento entre Classes e Agregação

André SantanchèInstitute of Computing – UNICAMP

Abril 2015

Pic

ture

by

htt

p:/

/ww

w.f

lickr

.co

m/p

ho

tos/

cro

uch

y69,

201

0

Page 2: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

OO: Relacionamento

Page 3: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

PessoaLivro

escreve

OO: Relacionamento

▪ Associação entre objetos

▪ Atributo de um objeto que se refere a outro

▫ Atributo definido na classe

Page 4: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

UML: Relacionamento

Pessoa Livroescreve

Livro Categoriapertence

Page 5: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

UML: Relacionamento Direcionado

Livro Categoriapertence

Page 6: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

UML: Auto-relacionamento

Categoria

subordinada

Page 7: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

UML: Papéis

Pessoa Livroescreve

+autor +obra

Categoria

subordinada

+super-categoria

+subcategoria

Page 8: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

ER: Cardinalidade no Relacionamento

▪ Restrições que limitam a possibilidade de combinações de entidades em relacionamentos

▪ Cardinalidade:

▫ Máxima

▫ Mínima

Page 9: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

Razão de Cardinalidade

Page 10: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

Razão de Cardinalidade

▪ É expressa a razão (ou proporção) de participação em um relacionamento.

▪ Transcrição gráfica das proporções: 1:1, 1:N, N:1 e N:N

Page 11: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

UML: Cardinalidade MáximaPessoa Livro

escreve

* *

Estante Livroguarda

1 *

Categoria

subordinada

+super-categoria

+subcategoria1

*

Page 12: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

UML: Cardinalidade Mínima

Pessoa Armárioocupa

1..* 0..*

Estante Livroescreve

0..1 0..1

Page 13: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

Agregação

Page 14: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

UML: Agregação

▪ Uma classe agrega outra (não exclusivamente)

Estante Livroguarda

Page 15: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

UML: Composição

▪ Relação existencial (exclusiva) entre a parte e o todo

Livro Capítulotem

Page 16: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

(Rubira, 2011)

Page 17: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

(Rubira, 2011)

Page 18: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

(Rubira, 2011)

Page 19: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

Exemplo Bastião

Page 20: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

Referências

▪ Rubira, Cecília Mary Fischer (2011). Introdução à Programação Orientada a Objetos Usando Java. Slides de aula, IC – Unicamp.

Page 21: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

André Santanchèhttp://www.ic.unicamp.br/~santanche

Page 22: Programação Orientada a Objetos Relacionamento entre ...santanch/teaching/oop/... · Programação Orientada a Objetos Relacionamento entre Classes e Agregação André Santanchè

License▪ These slides are shared under a Creative Commons License.

Under the following conditions: Attribution, Noncommercial and Share Alike.

▪ See further details about this Creative Commons license at:http://creativecommons.org/licenses/by-nc-sa/3.0/