Hola LPM
¿Se puede acceder a un objeto anónimo contenido en un ArrayList?
Al agregar un objeto anónimo queda dentro del array, con lo que sí se puede acceder.
Cierto, siempre se puede acceder al cualquier elemento de 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?
Adjunto código para comentar
Clase Corredor
public class Corredor { // Atributos de la clase Corredor
private String nombre;
private int dorsal;
//Constructor para objetos de la clase Corredor
public Corredor() { // Inicializa atributos
nombre = "";
dorsal = 0;
} // Fin del constructor Corredor
public Corredor (String nuevoNombre, int nuevoDorsal) {
nombre = nuevoNombre;
dorsal = nuevoDorsal;
}
// Siguen los setters para los atributos de la clase Corredor
public void setNombre(String valorNombre) { nombre = valorNombre; }
public void setDorsal(int valorDorsal) { dorsal = valorDorsal; }
// Ahora los getters para los atributos de la clase Corredor
public String getNombre () { return nombre; }
public int getDorsal () { return dorsal; }
@Override
public String toString() {
return nombre + ", " + dorsal;
}
} // Fin de la clase Corredor
Clase TestCorredor
import java.util.ArrayList;
import java.util.Iterator;
public class TestCorredor {
public static void main (String [] args) {
ArrayList <Corredor> listaCorredores = new ArrayList <Corredor>();
Corredor corredor1 = new Corredor();
Corredor corredor2 = new Corredor("Victor",12);
listaCorredores.add (corredor1); /** 1 */
listaCorredores.add (corredor2); /** 2 */
listaCorredores.add (new Corredor("Marc",25)); /** 3 */
Iterator <Corredor> it = listaCorredores.iterator();
System.out.println ("Corredores inscritos:");
while (it.hasNext()) {
System.out.println (it.next().toString());
}
}
} // Fin de la clase TestCorredor
En la clase TestCorredor hay tres líneas numeradas con los comentarios 1,2 y 3
En las comentadas 1 y 2. Se añaden objetos de tipo Corredor en la lista con los objetos recién creados de nombre corredor1 y corredor2 (estos objetos tienen nombre: corredor1 y corredor2)
En la comentada 3 el objeto añadido con el código
new Corredor("Marc",25)
no tiene nombre, es un objeto anónimo de tipo Corredor con dos atributos, un String "Marc" y un int 25.
Espero te sirva para entender. Pregunta si lo necesitas.
Saludos