Duvida na implentação a seguir (coisa simples)

5 respostas
diegofss11

Estou com duvida na seguinte questão,

dei upload na imagem aqui para uma referencia (http://img94.imageshack.us/img94/3013/imagemqvl.jpg) : É uma questao UML

por exemplo, na imagem 1, o correto seria:

class Dog{
   Cat c;
}

class Cat{
    Dog d;
}

Correto neh?

agora na imagem 2, esta como correta essa opção…:

class A{
    private B []b;
}

class B{}

SE FOSSE EU eu faria

class A{
    B b[];
}

Class B{
    A a;
}

Por que esta errado???

Gostaria de saber pq nao há nada dentro da classe B, igual na implementação da figura 1 ?

Nao entendi o por que =/

Muito obrigado!

5 Respostas

italons

é o *, ele indica “0 (zero) ou mais”

do seu jeito fica 1 pra 1. sacou?

flw

Giulliano

Exatamente o que o amigo aí em cima falou.

A classe A possui várias classes B, porém a classe B não possui a classe A.

Do jeito que vc fez…toda vez que fosse instãnciado a classe B vc precisatria ter uma classe A para fazer a associação.

diegofss11

Giulliano:
Exatamente o que o amigo aí em cima falou.

A classe A possui várias classes B, porém a classe B não possui a classe A.

Do jeito que vc fez…toda vez que fosse instãnciado a classe B vc precisatria ter uma classe A para fazer a associação.

Nao, nao entendi mano =/

A classe A possui n B e a classe B possui 1 A … nao ?

ViniGodoy

A flecha indica navegabilidade. No caso, de ambos, A navega para B, mas não o contrário.
Portanto, em nenhuma situação deveria haver um atributo de B para A.

O primeiro código está errado. Deveria ser:
class Dog{  
   Cat c;  
}  

class Cat{  
}

Se você quer dupla navegabilidade, retire as flechas.

diegofss11
ViniGodoy:
A flecha indica navegabilidade. No caso, de ambos, A navega para B, mas não o contrário. Portanto, em nenhuma situação deveria haver um atributo de B para A. O primeiro código está errado. Deveria ser:
class Dog{  
   Cat c;  
}  

class Cat{  
}

Se você quer dupla navegabilidade, retire as flechas.

A sim... muito obrigado!

Criado 3 de agosto de 2010
Ultima resposta 3 de ago. de 2010
Respostas 5
Participantes 4