Buenas noches Eduardo. Para la primera pregunta veo la respuesta acertada: aunque un objeto haya sido introducido en el ArrayList sin nombre, siempre podremos acceder a él a través del índice correspondiente a ese objeto en el ArrayList.
Para la segunda pregunta, creo que conviene tener en cuenta que un objeto no se puede inicializar a 0 directamente, sino que ha de hacerse mediante una estructura específica de creación de objetos, en Java mediante el uso de la palabra clave new.
En esta pregunta en concreto nos dice si podríamos inicializar un objeto de una clase que tiene tres atributos que a su vez son objetos, declarando en el constructor que los objetos se inicializan mediante objetos anónimos.
La respuesta es que sí. Por ejemplo
public ClaseTest () {
atrib1 = new tipo1();
atrib2 = new tipo2();
atrib3 = new tipo3();
}
Aquí new tipo1() es un objeto anónimo.
Podríamos hacer lo mismo con este código:
public ClaseTest () {
obj1 = new tipo1();
obj2 = new tipo2();
obj3 = new tipo3();
atrib1 = obj1;
atrib2 = obj2;
atrib3 = obj3;
}
En este código diríamos que no estamos usando objetos anónimos. En realidad la cosa es más compleja y podríamos hablar de las referencias en Java y de lo que supone este último código, pero para los objetivos del curso por el momento creo que es suficiente.
Saludos.