Relacionamento TEM-UM

6 respostas
P

Oi gente!

Estou me preparando para a prova e me deparei com a seguinte situação:

sei que uma classe que possui variáveis de instância que são referências a objetos caracterizam um relacionamento TEM-UM. Minha dúvida é a seguinte: uma classe que não possua nenhuma variável de instância de referência e apresenta métodos que possuam variáveis de referência locais, caracteriza o relacionamento TEM-UM?

6 Respostas

G

Que eu saiba o relacionamenteo TEM-UM é somente para variaveis de instancia.
Já que as variaveis locais poderão ser coletadas pelo coletor de lixo ao final da execução do método assim o objeto NÃO TERÁ mais aquele objeto, violando o relacionamento TEM-UM.

G

Exemplo:

A classe casa TEM-UM(A) porta:\
public class Casa {
   private Porta port;
}
Já de outra maneira, Porta dentro de um metodo:
public class Casa{

  public static void main(String... args){
     Casa casa = new Casa();
     casa.metodo1();
  }


  public void metodo1(){
     Porta p = new Porta();

     System.out.println("metodo1");
  }
}

Repare que após a execução do método1, a variavei local Porta dentro método não poderá ser acessada por nenhum código fora do método, perdendo assim uma referência àquela porta. Portanto viola o relacionamento TEM-UM

Se eu estiver errado me corrijam.

H

Lembrando que métodos não são coletados pelo GC e sim objetos.

Abraços.

F

E para métodos, não?

Penso eu que, como os membros de uma classe são as variáveis de instância e os métodos, logo o que caracteriza o relacionamento TEM-UM são além das variáveis de instância, também os métodos.

L

Não… as varaiaveis locais existem apenas temporariamente… o relacionamento TEM-UM… é aquilo que uma classe realmente possui… no mundo real… um carro ele realmente precisa TER-UMA roda… porem em algum metodo local o carro pode ter ou nao um som…
veja em codigo:

class Carro{
Roda roda;
void metodo som(){
String marca_som;
}}

class Roda{}

entendeu? A essencia de TEM-UM? Meu fusquinha quando comprei ele nao veio com som nao… porem as rodas está no relacionamento TEM-UM do meu fusquinha!!

flw!

R

Não… as varaiaveis locais existem apenas temporariamente… o relacionamento TEM-UM… é aquilo que uma classe realmente possui… no mundo real… um carro ele realmente precisa TER-UMA roda… porem em algum metodo local o carro pode ter ou nao um som…
veja em codigo:

class Carro{
Roda roda;
void metodo som(){
String marca_som;
}}

class Roda{}

entendeu? A essencia de TEM-UM? Meu fusquinha quando comprei ele nao veio com som nao… porem as rodas está no relacionamento TEM-UM do meu fusquinha!!

flw!

É então resumindo, o relacionamento TEM-UM, só é válido para variáveis de instância.
Não é válido, para variáveis locais ou métodos de instância
Foi isso mesmo que eu entendi?

Criado 17 de março de 2008
Ultima resposta 20 de mar. de 2008
Respostas 6
Participantes 6