17
Programação Orientada a Objetos Relacionamentos entre classes Prof. Vicente Paulo de Camargo

Uma Introdução a Programação Orientada a Objetos - EAD - UML... · Programação Orientada a Objetos Relacionamentos entre classes Prof. Vicente Paulo de Camargo. ... Veiculo,

  • Upload
    lydang

  • View
    229

  • Download
    0

Embed Size (px)

Citation preview

Programação Orientada a Objetos

Relacionamentos entre classes

Prof. Vicente Paulo de Camargo

RELACIONAMENTO ENTRE CLASSES

Dependencia

agregação

composição

associaçãogeneralização

Interface

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.)COMPOSIÇÃO – CÓDIGO SEMELHANTE A ASSOCIAÇÃO

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.)AGREGAÇÃO

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.

RELACIONAMENTO ENTRE CLASSES

F I M