Autor Tema: Qué son los objetos anónimos en Java Ejemplo ejercicio resuelto CU00668B  (Leído 5238 veces)

adrit

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 59
    • Ver Perfil
Hola! Aquí mis respuestas al ejercicio CU00668B.

Citar
EJERCICIO

Responde a las siguientes preguntas.
1) ¿Se puede acceder a un objeto anónimo contenido en un ArrayList?
2) ¿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?

Respuestas:

1) Si, si el objeto anónimo fue agregado satisfactoriamente a un ArrayList entonces podemos acceder al mismo.

Ejemplo:

ListaNombres lista = new ListaNombres();
lista.add(new Persona("Jose Pirez");
lista.add("Pedro Picapiedras"); //autoboxing

Entonces el objeto lista contendrá 2 objetos ("Pedro Picapiedras" y "Jose Pirez")

2) Esta pregunta me generó muchas dudas pero mi respuesta es No.
     
Gracias!!
« Última modificación: 16 de Julio 2015, 14:16 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola adrit la respuesta a la pregunta 1 es que sí, pero el ejemplo que pones es un tanto extraño:

ListaNombres lista = new ListaNombres();

lista.add(new Persona("Jose Pirez"); -- > Añade un objeto Persona a la lista

lista.add("Pedro Picapiedras"); //autoboxing -- > Añade un objeto String a la lista

Aquí habría que aclarar que lista normalmente contendrá o bien Personas, o bien Strings, no las dos cosas al mismo tiempo (a no ser que sea un caso especial).

La respuesta a la pregunta 2 es que sí, lee la explicación en https://www.aprenderaprogramar.com/foros/index.php?topic=1033 y si te quedan dudas consulta.

Saludos.

adrit

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 59
    • Ver Perfil
Hola Alex!

Si, en el ejemplo quería mostrar como puedo agregar un objeto anónimo, lo correcto sería:

ListaNombres lista = new ListaNombres(); //lista tipo persona

lista.add(new Persona("Jose Pirez");

La segunda respuesta está mas clara ahora para mí, aunque me surge una consulta:

Podriamos hacer un constructor como el que sigue?:

Código: [Seleccionar]

public class Test {

PersonajeMaldito personajeM1, personajeM2, personajeM3; // Declaración de atributos

public Test (String uno, String dos, String tres) {
// inicialización atributos con objetos anónimos de tipo String y MaldadBipolar
personajeM1 = new PersonajeMaldito(uno,    new MaldadBipolar(dos,  tres));
personajeM2 = new PersonajeMaldito("Lady Westfalia", new MaldadBipolar("Destruye sueños", "Encierra miradas"));
personajeM3 = new PersonajeMaldito("Demon Wii",      new MaldadBipolar("Corta senderos",  "Tuerce destinos"));

// la clase PersonajeMaldito tiene dos atributos uno de tipo String y otro de tipo MaldadBipolar
// la clase MaldadBipolar tiene dos atributos de tipo String
}//cierre de clase



Gracias!!
« Última modificación: 16 de Julio 2015, 17:28 por adrit »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola, sí, un constructor como el que indicas sería posible, aunque sería un poco raro (ya que los parámetros recibidos sólo sirven para inicializar uno de los tres atributos). No obstante, si la lógica del código está bien planteada no habría inconveniente en usar un constructor como este que has indicado.

Saludos

adrit

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 59
    • Ver Perfil
ok, gracias!

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".