Dúvida orientação a objetos[RESOLVIDO]

5 respostas
E

Galera estou com uma dúvida em orientação a objetos possuo as seguintes classes:

public class X { private Y y = new Y(); }

public class Y {
	//atributos
	//metodos	
}
public class Z {
	//Atibuos
	private Y referenciaDoObjetoYNaClasseX = //pega a referencia do objeto Y na classe X;	
}

Eu preciso pegar na classe Z a referencia do mesmo objeto Y instanciado na classe X…

Como saio deste problema ? alguma dica ?

Vlw galera obrigado

5 Respostas

jeanmalvessi

Use o Static…

Isso pode lhe ajudar: http://www.guj.com.br/articles/121

diego.sas

elias_almeida:
Galera estou com uma dúvida em orientação a objetos possuo as seguintes classes:

public class X { private Y y = new Y(); }

public class Y {
	//atributos
	//metodos	
}
public class Z {
	//Atibuos
	private Y referenciaDoObjetoYNaClasseX = //pega a referencia do objeto Y na classe X;	
}

Eu preciso pegar na classe Z a referencia do mesmo objeto Y instanciado na classe X…

Como saio deste problema ? alguma dica ?

Vlw galera obrigado

public class X { private Y y = new Y(); }

public class Y {
	//atributos
	//metodos	
}
public class Z {

private X referenciaX ;
       public Z(X referenciaX ){
           this.referenciaX  = referenciaX ;
       }
// Cria o construtor da Z que recebe por parametro um X

  private Y referenciaDoObjetoYNaClasseX = referenciaX .getY();	
}
nel

Por isso existe o conceito de encapsulamento e se utiliza os famosos getters e setters.
Crie um getter e/ou setter (esse é opcional) e cria uma instancia do objeto X.

Feito isso, basta realizar o ‘get’ do Objeto que deseja. Nessa caso, será o objeto Y.
Abraços.

J

Vocês acima estão certos. Se o atributo que referencia a classe Y na classe X fosse publico poderia
sim ser acessado diretamente pela classe Z, mas como ele é privado basta criar um
método publico (getY()) que retorne essa referencia.

E

Olá pessoal obrigado pela ajuda consegui resolver o problema com a solução do diego.sas

As outras soluções são interessantes porém não resolvem o meu problema pelo seguinte motivo, se na classe Z eu instancia um objeto X e usar seu getY() para pegar a referência de Y eu não estaria pegando a mesma referência de que preciso, pois teria 2 objetos X em memória, um que já esto utilizando em outras classes, e este novo que instanciei em Z agora, então tecnicamente as referência obtida de Y são diferente. e não as mesmas.

Mas valeu a ajuda de todos.

Criado 30 de janeiro de 2012
Ultima resposta 2 de fev. de 2012
Respostas 5
Participantes 5