Upload
lydang
View
229
Download
0
Embed Size (px)
Citation preview
RELACIONAMENTO ENTRE CLASSES
Dependencia
agregação
composição
associaçãogeneralização
Interface
Esses são os possíveis relacionamentos entre as classes existentes em um
sistema de software
RELACIONAMENTO ENTRE CLASSES (cont.)GENERALIZAÇÃO – UML E CÓDIGO JAVA
Duas classes possuem esse relacionamento quando uma é derivada da outra,representando uma herança
class Pessoa{
String nome;int idade;
}
Class Funcionario extends Pessoa{
int matricula;}
A herança simples é representada por extends na subclasse
RELACIONAMENTO ENTRE CLASSES (cont.)REALIZAÇÃO – UML E CÓDIGO
Esse tipo de relacionamento existe quando uma classe implementa uma interface
Public interface dadosProfissionais{
public abstract String getDadosCadastrais();
}
Class Medico extends Pessoaimplements dadosProfissionais
{private int numCRM;public abstract String
getDadosCadastrais(){ return this.numCRM;
}}
O termo implements representa a herança por interface
Aqui há uma herança múltipla
RELACIONAMENTO ENTRE CLASSES (cont.)ASSOCIAÇÃO – UML E CÓDIGO
Esse tipo de relacionamento existe quando um objeto da classe X pode terinstancias de objetos da mesma classe ou de outras classes.Ambos os lados permitem navegação (navegação dupla).
Public class Funcionarioextends Pessoa
{ private int matricula; private Dependente[ ] dependente;
}
Class Dependente extends Pessoa{
private int tipoParentesco;private Funcionario funcionario;
}
Um funcionário pode ter vários dependentes (* no lado de Dependente)
Um dependente só possui uma instância de Funcionario
RELACIONAMENTO ENTRE CLASSES (cont.)ASSOCIAÇÃO – UML E CÓDIGO
Neste caso, só funcionário “enxerga” Dependente.
Public class Funcionarioextends Pessoa
{ private int matricula; private Dependente[ ] dependente;
}
Class Dependente extends Pessoa{
private int tipoParentesco;
}
Um funcionário pode ter vários dependentes , mas dependente não possui instância de Funcionario devido ao sentido da associação para o Dependente
Neste caso, a associação tem um sentido
RELACIONAMENTO ENTRE CLASSES (cont.)DEPENDENCIA – UML E CÓDIGO
Esse tipo de relacionamento existe quando uma classe pode ser afetada por mudanças em outra classe.
Public class Funcionarioextends Pessoa
{ private int matricula; private Dependente[ ] dependente;public boolean analisarVeiculo(Veiculo v){
.......................return true;
}}
Essa classe não possui instância deVeiculo, mas utiliza-o como parâmetro em método
RELACIONAMENTO ENTRE CLASSES (cont.)COMPOSIÇÃO E AGREGAÇÃO
COMPOSIÇÃO:
Um objeto pode ser formado por outros objetos
LIVRO é formado por um ou mais CAPÍTULOS
AGREGAÇÃO:
Um objeto pode ter outros objetos
CARRO possui PORTA, MOTOR e PNEU
RELACIONAMENTO ENTRE CLASSES (cont.)COMPOSIÇÃO
Um livro é composto de um ou mais capítulosUm capítulo não existe sem o livroSe não existir capítulo, não existe livroREPRESENTAÇÃO:Linha com losango preenchido no lado “dominante”
RELACIONAMENTO ENTRE CLASSES (cont.)AGREGAÇÃO – CÓDIGO SEMELHANTE À ASSOCIAÇÃO
Carro possui Motor, Porta e PneuMotor, Porta e Pneu existem como objetos independentesREPRESENTAÇÃO:Linha com losango vazio no lado “dominante”
RELACIONAMENTO ENTRE CLASSES (cont.)COMPOSIÇÃO, AGREGAÇÃO E ASSOCIAÇÃO
NOTASAgregação e Composição podem ser substituídas poruma Associação, pois...Agregação e Composição são tipos de associaçõesRepresentam relacionamento “TEM UM”Carro “tem um” MotorLivro “tem um” Capitulo
NÃO ESQUECER QUE HERANÇA É UM RELACIONAMENTO “É UM”
RELACIONAMENTO ENTRE CLASSES (cont.)COMPOSIÇÃO, MODELANDO O BANCO DE DADOS: As classes
A agregação permiteEstabelecer atores dentro de um filme,Podendo até remover ator de um filme.Um ator não é exclusivo de um filmePode-se ter um ator em diferentes filmes
A composição permiteestabelecerComentário em um filme. Noentanto,Neste caso, um comentário éexclusivoDe um filme.Um comentário só faz parte deum determinado filme.Um comentário não faz parte deoutros filmes
RELACIONAMENTO ENTRE CLASSES (cont.)COMPOSIÇÃO, MODELANDO O BANCO DE DADOS: O DER Resultante
filme
Filme_ator ator
produtor
comentario
1
N
1
N 1N
1 N
Do diagrama de classes pode-se gerar o DER. Sendo que a agregação implicou na geração da tabela filme_ator entre filme e ator no Diagrama de Entidade correspondente. A composição gerou um relacionamento 1:N entre filme e comentário. A associação gerou um relacionamento 1:N entre produtor (que recebe a seta) e o filme.