Oi, Ricardo


>>Quando falo em associacao, estou falando que a classe Medico nao conhece a
>>classe PessoaFisica, nem a classe PessoaFisica conhece a classe Medico.
>>Nenhuma delas tem um atributo com o tipo da outra.
>>Existe entao, uma classe que ainda nao temos nome pra ela (poderia ser
>>Roles) que representa a associacao e que ela sim, conhece as outras duas.

>Não necessariamente. Neste caso, na hora de implementar, a Classe Medico
>pode ter uma referencia da classe PessoaFisica e o mesmo no que diz
respeito
>à classe Paciente.

Se eu faco isto, estou transformando a associacao em agregacao.
Esta e a sutil diferenca entre agregacao e associacao. Pra fazer o que voce
quer (ter uma referencia para a outra classe) preciso importar a outra
classe e arrastra-la comigo (agrega-la) pelo resto da vida (pois conheco o
tipo dela).

O mais dificil e' entender que a associacao 'per se' e' um objeto. Se faco
isto numa ferramenta de modelagem (desenho uma associacao), ela nao
adicionara referencia nenhuma em nenhuma das classes que ela associa, e eu
posso clicar na associacao e definir caracteristicas nela (ex: role de cada
uma das pontas, navegabilidade, cardinalidade, etc).
Na UML voce ve que um dos atributos de uma associacao sao justamente os
tipos ( e roles) de cada uma das pontas que ela liga.
 Isso sem ter adicionado nenhum atributo na associacao.

Na hora em que comecamos a agregar, caimos de volta no mundo relacional,
pois a unica coisa que faco no relacional e agregar ( atraves da relacao,
sempre preciso importar a chave da outra tabela)

>Contudo, podem haver atributos de seu interesse que
>pertençam ao relacionamento, daí vale a pena criar mais uma classe.


A associacao e' um elemento 'per se'. Pecisamos dar nome para ela, nao
gostei do que eu di (Roles).

>>Mais...
>>Se eu tenho um Medico ( e so um medico) ou tenho um Paciente (e so um
>>paciente), e nao tenho acesso ao Rol, e quero saber quem é a pessoa que a
>>representa pois nao pode existir paciente ou medico sem pessoa, nao
>>consigo.


>Não entendi o que você quis dizer ....
>Tente clarear um pouco mais!

Quizas um pouco de codigo ajude. Desculpem se escrevo errado, mais estou
aprendendo Java tambem.


public class Pessoa {
public char Nome;
}

public class Medico {
 public char CRM;
}

//Associacao
public class SEMNOMEAINDA {
public Medico umMedico;
public Pessoa umaPessoa;
}

public class AVIAO {
public EVoceMedico? (Pessoa passageiro );
}



    --------------------------- LISTA SOUJAVA ---------------------------
    http://www.soujava.org.br  -  Sociedade de Usuários Java da Sucesu-SP
    [para sair da lista: http://www.soujava.org.br/forum/cadastrados.htm]
    ---------------------------------------------------------------------

Responder a