Java - Como llamar a un objeto por medio de una cadena y una variable

 
Vista:
Imágen de perfil de Jesus Morfin

Como llamar a un objeto por medio de una cadena y una variable

Publicado por Jesus Morfin (2 intervenciones) el 20/11/2016 19:52:45
Soy nuevo en Java y me gustaria saber como puedo llamar a una clase por medio de una cadena y una variable

Digamos que tengo muchos objetos como cuenta1, cuenta2, cuenta3, etc y por medio de for quiero ir llamando al método de cada objeto

Por ejemplo

for ( int i = 1 ; i =< 3 ; i ++)
("cuenta"+i).metodo();

Cual es la forma correcta?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Como llamar a un objeto por medio de una cadena y una variable

Publicado por juanki (131 intervenciones) el 20/11/2016 20:12:39
Hola

Yo creo que la forma correcta es que metas los objetos en un array y luego vayas recorriendo el array y llamando a cada elemento.

1
2
for ( int i = 1 ; i =< 3 ; i ++)
    cuenta[i].metodo();

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jesus

Como llamar a un objeto por medio de una cadena y una variable

Publicado por Jesus (2 intervenciones) el 20/11/2016 20:30:53
Gracias por tu respuesta. Nunca había preguntado en un foro por que tenia la impresión de que nadie vería mi pregunta. Ahora creo que nunca mas dejare de usarlos. Gracias otra vez.

Esa es una manera excelente pero también me gustaría saber como concatenar variables o cadenas y que me los tomase como el nombre del objeto, método, etc para referencias futuras.

Un cordial saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Lawliet
Val: 653
Bronce
Ha disminuido 1 puesto en Java (en relación al último mes)
Gráfica de Java

Como llamar a un objeto por medio de una cadena y una variable

Publicado por Lawliet (303 intervenciones) el 20/11/2016 22:11:37
Hola...

Lo que tu quieres realizar ya entra en si es una buena o mala práctica de Java, las cuales podrás encontrar mucha información en Internet sobre cuales son dichas prácticas. Además que siendo honestos en mi experiencia no he tenido un motivo para tener "Clases Dinámicas" o "Métodos Dinámicos" y la razón es simple, Java tiene la sobrecarga y sobreescritura de métodos. A continuación, explico en que consiste cada uno.

La sobrecarga, consiste en declarar un mismo método N cantidad de veces pero con la firma del mismo diferente; es decir, declarar un método con diferentes argumentos. Ejemplo:

1
2
3
4
5
6
7
8
9
10
11
public void metodoAritmetico(){
	//...
}
 
public void metodoAritmetico(int a, int b){
	//...
}
 
public void metodoAritmetico(double a, double b){
	//...
}

Como puedes observar, tengo el mismo método pero con diferentes argumentos... En este momento posiblemente te preguntes... ¿Como se que método llamar?... La respuesta esta en el tipo de dato que tu vas a pasar; es decir, si pasas valores del tipo int, si pasas valores del tipo double o sino pasas valores; es decir, sin parámetros. Ejemplo...

1
2
3
4
5
6
// Llamada a método sin parámetros.
metodoAritmetico();
// Llamada a método con parámetros del tipo "int".
metodoAritmetico(1, 2);
// Llamada a método con parámetros del tipo "double". NOTA: Se agrega la "d" al final del parámetro para indicarle que es un double y no un entero.
metodoAritmetico(1d, 2d);

La sobreescritura, es cuando una clase hija puede re-definir o como su nombre lo indica re-escribir los métodos de la clase padre. Ejemplo:

1
2
3
4
5
6
public class Instrumento {
 
	public void tocar() {
		System.out.println("Clase (Padre)");
	}
}

1
2
3
4
5
6
7
8
9
10
11
12
13
public class Guitarra extends Instrumento {
 
	public static void main(String[] args) {
		Instrumento padre = new Instrumento();
		padre.tocar();
		Instrumento hija = new Guitarra();
		hija.tocar();
	}
 
	public void tocar() {
		System.out.println("Clase (Hija)");
	}
}

Gracias a esto, nosotros podemos manipular el cuerpo del método y adecuarlo a nuestras necesidades.

Si tu entiendes perfectamente estas definiciones, te darás cuenta que eso de crear "Clases Dinámicas" o "Métodos Dinámicos" puede que sea funcional pero rompe con todo el esquema o paradigma de programación que te ofrece Java, después de todo recordemos que Java es orientado a objetos.

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Como llamar a un objeto por medio de una cadena y una variable

Publicado por juanki (131 intervenciones) el 20/11/2016 22:46:17
Hola


Según entendí yo, no quiere eso. Él ha declarado una serie de objetos de una clase y los ha llamado con nombres consecutivos: objeto1, objeto2, objeto3...

Y ahora lo que pretende es acceder a sus métodos a través de una variable de tipo string a la que le concatena un número para formar así el nombre de uno de los objetos y acceder a sus métodos:

"objeto1".metodo()

Hasta donde conozco de java eso no se puede hacer (no uso ningún lenguaje que se pueda hacer, y si se puede, desconozco totalmente esa característica). Por eso le propongo que la solución es usar un array.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar