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.
Top Related