Utilizar uma variavel para mais de um tipo de objeto

4 respostas
leandromarrom

Dae Galera tudo tranquilo ?!

seguinte sou inciando em java e estou com a seguinte duvida:

public class Teste {

	private String atributo1;
	private String atributo2;
	private String atributo3;
	
	
	public void setAtributoValor(String atributo, String valor)
	{
		if(atributo.equals("atributo1")){ this.atributo1 = valor; }   
		else if(atributo.equals("atributo2")){ this.atributo2 = valor; }
		else if(atributo.equals("atributo3")){ this.atributo3 = valor; }
	}

	
}



public class Test2 {

	private String atributo1;
	private String atributo2;
	private String atributo3;
	
	
	public void setAtributoValor(String atributo, String valor)
	{
		if(atributo.equals("atributo1")){ this.atributo1 = valor; }   
		else if(atributo.equals("atributo2")){ this.atributo2 = valor; }
		else if(atributo.equals("atributo3")){ this.atributo3 = valor; }
	}

	
}


	public class Test3 {
	
		private String atributo1;
		private String atributo2;
		private String atributo3;
		
		
		public void setAtributoValor(String atributo, String valor)
		{
			if(atributo.equals("atributo1")){ this.atributo1 = valor; }   
			else if(atributo.equals("atributo2")){ this.atributo2 = valor; }
			else if(atributo.equals("atributo3")){ this.atributo3 = valor; }
		}
	
		
	}





class Qualquer{
	
	public Object getClasse( String nomeBean ){
	
		if(nomeBean.equals("Test1"))
		{
			Test objeto = new Test();
		}
		
		else if(nomeBean.equals("Test2"))
		{
			Test2 objeto = new Test2();
		}
		
		else if(nomeBean.equals("Test3"))
		{
			Test3 objeto = new Test3();
		}	
		
		


		objeto.setAtributoValor("atributo1", "valor");  // quero usar a variavel objeto no decorrer do metodo getClasse
		
	}
	
}

Como disse sou iniciante ai se alguem poder ajudar eu agradeço :smiley:

4 Respostas

G

Opa, eae blz ?

Então, eu sou iniciante em java tbm, então deixa eu perguntar :

O que você quer exatamente fazer ?
A sua idéia é usar a referencia “objeto” ( para fazer suas coisas lá dentro…etc ), não importando de qual classe o objeto realmente é ? ( das classes Teste,Test2,Test3… )
Eu não entendi muito bem.

Se for, uma idéia seria criar uma superclasse abstrata dessas 3( elas sendo subclasses ) e assim, seria possível criar uma variavel do tipo SuperTeste, sei lá… e que pudesse referenciar qualquer uma das 3 subclasses. Será que é isso ?
( Se tiver errado, alguém da um toque aí. Ainda sou mó leigo nessas coisas haeuheuahe)

flws …

wagnerfrancisco

Você pode criar uma interface, que tenha o método em comum as três classes, ou uma classe da qual as outras vão herdar. Algo assim:

public interface InterfaceTeste {
   void setAtributoValor(String atributo, String valor);
}

class Qualquer{
	
	public Object getClasse( String nomeBean ){
	
                InterfaceTeste objeto = null;
		if(nomeBean.equals("Test1"))
		{
			objeto = new Test();
		}
		
		else if(nomeBean.equals("Test2"))
		{
			objeto = new Test2();
		}
		
		else if(nomeBean.equals("Test3"))
		{
			objeto = new Test3();
		}	
		
		objeto.setAtributoValor("atributo1", "valor"); 
		
	}
	
}

Nesse caso tuas classes Teste terão que implementar a interface em questão.

Mas o que vc deseja fazer? Dependendo do que for pode existir uma solução melhor.

Falou.

Marky.Vasconcelos

Dificilmente voce precisa ter na mesma referencia para representar varios tipos de objeto. Voce pode pensar mais OO e fazer uma interface se esses objetos tiverem comportamento parecido.

leandromarrom

\o/
<<

Galeraaa valew muito Obrigado…

Deu certo o Lance de usar Interface, de coração valew mesmo :smiley:

Criado 29 de janeiro de 2010
Ultima resposta 31 de jan. de 2010
Respostas 4
Participantes 4