Linguagem de Programação II
Relacionamento entre classes
Tópicos
Relacionamento entre Classes
Associação
Definição
Cardinalidade / Multiplicidade
Conectividade
Tipos de Associação
Exemplos de Associação em Java
Mensagens
Definição
Representação Gráfica – Diagrama de Classes
Exemplos
Associação
Definição
É uma conexão entre classes.
Os objetos de uma classe estão ligados a objetos de
outras classes
pode haver troca de informações (mensagens) e
compartilhamento de métodos.
Ocorre normalmente
entre duas classes (binária),
entre uma classe com ela mesma (unária) e
entre várias classes (ternária/N-ária).
“Equivale” aos relacionamentos E-R.
Relacionamento entre Classes –
Associação
Exemplos
Cliente
Produto
ContaCorrente
HistoricoTransações
Compra
Possui
Relacionamento entre Classes –
Associação
Associação
Cardinalidade / Multiplicidade
Consiste na quantidade mínima e máxima de objetos que podem ser
conectados pela instância de uma associação.
Exemplo:
Pessoa
Trabalha na
Empresa
1..*
0..*
Multiplicidade
Multiplicidade
Cardinalidade / Multiplicidade entre
Classes
Exemplos:
Cliente
Pedido
1
0..*
Cardinalidade / Multiplicidade entre
Classes
8
Exemplos:
Pode haver um cliente que esteja associado a vários pedidos.
Pode haver um cliente que não esteja associado a pedido algum.
Um pedido está associado a um, e somente um, cliente.
Cliente
Pedido
1
0..*
Cardinalidade / Multiplicidade entre
Classes
9
Associação
Conectividade
Corresponde ao tipo de associação
existentes entre classes:
“muitos para muitos”, “um para muitos” e “um para um”.
Conectividade
Em um Extremo
No outro Extremo
Um para um
0..1
1
0..1
1
Um para muitos
0..1
1
*
1..*
0..*
Muitos para muitos
*
1..*
0..*
*
1..*
0..*
Conectividades entre Classes
Exemplos:
Empregado
Departamento
1
0..1
Um para um
Empregado
Departamento
0..*
1
Um para muitos
Empregado
Departamento
0..*
1..*
Muitos para muitos
Conectividades entre Classes
Associação
Tipos de Associação
Associação Binária
Associações entre duas classes
Mais comum
Exemplo:
Tipos de Associação
Associação Unária (ou Reflexiva)
Ocorre quando uma classe relaciona com si mesmo.
Exemplo:
Tipos de Associação
Associação
Exemplos de Associação em Java
Pessoa.java
Endereco.java
Pessoa
Possui
Endereco
0..1
Associação “um para um” em Java
17
public
class
Pessoa{
private
Endereco
endereco
=
new
Endereco()
;
}
public
class
Endereco{
private
Pessoa
pessoa
= new
Pessoa()
;
}
Pessoa.java
Endereco.java
Pessoa
Possui
Endereco
1..5
Associação “um para muitos” em Java
18
0..1
public
class
Pessoa{
private
Endereco[]
enderecos
=
new
Endereco[5]
;
}
public
class
Endereco{
private
Pessoa
pessoa
= new
Pessoa()
;
}
Pessoa.java
Endereco.java
Pessoa
Possui
Endereco
1..*
Associação “um para muitos” em Java
19
public
class
Pessoa{
private ArrayList
<Endereco>
enderecos
=
new
ArrayList
<Endereco>
();
}
public
class
Endereco{
private
Pessoa
pessoa
= new
Pessoa()
;
}
Pessoa.java
Endereco.java
Associação “muitos para muitos” em
Java
20
public
class
Pessoa{
private
Endereco[]
enderecos
=
new
Endereco[5]
;
}
public
class
Endereco{
private
Pessoa[]
pessoas
= new
Pessoa[2]
;
}
Pessoa
Possui
Endereco
1..5
1..2
Pessoa.java
Endereco.java
Pessoa
Possui
Endereco
0..*
Associação “muitos para muitos” em
Java
21