Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: ronal.d87 en 02 de Julio 2015, 11:40
-
¿Se puede acceder a un objeto anónimo contenido en un ArrayList? ¿Se puede inicializar un objeto de una clase que contiene tres atributos de tipo objeto declarando en el constructor que los atributos se inicializan mediante objetos anónimos?
NO SE PUEDE ACCEDER A UN OBJETO ANONIMO DESDE UN ARRAYLIST YA QUE NO CONTAMOS CON UN CAMPO O UN NUMERO DE REFERENCIA RESERVADA EN MEMORIA PARA HACER EL LLAMADO.
SI SE PUEDE INICIALIZAR Y ESTO LO PODEMOS HACER DE LA SIGUIENTE MANERA
video.add (new Pelicula (“Romeo y Julieta”, 165, "Nominada a Oscar");
-
Hola Ronald:
La primera respuesta no es correcta.
La segunda respuesta está perfecta , y bien ejemplificada.
Volvamos entonces sobre la primera pregunta.
Te propongo el siguiente ejemplo:
Clase Jugador
public class Jugador {
private String nombre;
private double altura;
public Jugador(String nombre, double altura) {
this.nombre = nombre;
this.altura = altura;
}
public String getNombre(){
return nombre;
}
public double getAltura(){
return altura;
}
public void setNombre(String valorNombre){
nombre = valorNombre;
}
public void setAltura(double valorAltura){
altura = valorAltura;
}
} // fin de la clase
Clase TestJugador
import java.util.ArrayList;
public class TestJugador {
public static void main(String[] args){
ArrayList<Jugador> lista = new ArrayList<Jugador>();
// carga de objetos tipo Jugador al objeto ArrayList de nombre lista
lista.add(new Jugador("Lionel Messi",1.69));
lista.add(new Jugador("Javier Mascherano",1.75));
// recorrido de la lista
System.out.println("\fLista de Jugadores\n");
for (Jugador tmp:lista){
System.out.println("Nombre: "+tmp.getNombre()+"\tAltura: "+tmp.getAltura());
}
}
} // fin de la clase
Analicemos la clase TestJugador
Fíjate que en las líneas de código:
lista.add(new Jugador("Lionel Messi",1.69));
lista.add(new Jugador("Javier Mascherano",1.75));
lo que hacemos es instanciar dos objetos anónimos tipo Jugador, y a su vez los agregamos al objeto tipo ArrayList llamado lista.
Luego, en estas líneas de código:
for (int i=0; i<lista.size();i++){
System.out.println("Nombre: "+lista.get(i).getNombre()+"\tAltura: "+lista.get(i).getAltura());
}
utilizamos el índice i para recorrer la lista de jugadores.
Por lo tanto sí podemos acceder a los objetos de un ArrayList cuyos objetos se han agregado previamente de manera anónima, ya que el acceso a los objetos de un ArrayList se hace mediante las posiciones que ocupan dentro de él.
Sin importarnos cómo se agregaron los objetos dentro del ArrayList:
llamando al método lista.get(0) me devolverá el objeto tipo Jugador ubicado en la posición 0 del ArrayList
llamando al método lista.get(1) me devolverá el objeto tipo Jugador ubicado en la posición 1 del ArrayList
Conclusión: no perdamos de vista que los objetos dentro de un ArrayList ocupan una posición, y que mediante esa posición accedemos a ellos.
-
Hola Ronal, en los foros escribir en mayúsculas se considera que equivale a gritar o remarcar algo importante. Por favor escribe el texto de los mensajes en minúsculas (excepto aquella parte que quieras remarcar o requiera de mayúsculas). Gracias!