Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

Haga lo que hicimos en aula: declarando constructores

En este ejercicio practiqué el uso de constructores con parámetros para crear objetos de tipo Película y Serie. También trabajé con un ArrayList de tipo Titulo, aplicando el concepto de polimorfismo para almacenar diferentes tipos de objetos en una misma lista. Finalmente, recorrí la lista usando un loop foreach y utilicé instanceof para verificar si el objeto era una Película antes de acceder a su método de clasificación, evitando errores de ejecución.

PrincipalConListas.java

package com.aluracursos.screenmatch.principal;

import com.aluracursos.screenmatch.modelos.Pelicula;
import com.aluracursos.screenmatch.modelos.Serie;
import com.aluracursos.screenmatch.modelos.Titulo;

import java.util.ArrayList;

public class PrincipalConListas {

    public static void main(String[] args) {

        Pelicula favorita = new Pelicula("El señor de los anillos", 2001);
        favorita.evalua(10);

        Pelicula otra = new Pelicula("John Wick", 2014);
        otra.evalua(9);

        Serie serie = new Serie("La Casa de Papel", 2017);

        ArrayList<Titulo> lista = new ArrayList<>();
        lista.add(favorita);
        lista.add(otra);
        lista.add(serie);

        for (Titulo item : lista) {
            System.out.println("Nombre: " + item.getNombre());

            if (item instanceof Pelicula pelicula && pelicula.getClasificacion() > 2) {
                System.out.println("Clasificacion: " + pelicula.getClasificacion());
            }
        }
    }
}
1 respuesta

¡Hola Estudiante, espero que estés bien!

Parece que ya has hecho un gran trabajo siguiendo el ejercicio de la clase. Has utilizado correctamente los constructores con parámetros para crear objetos de tipo Pelicula y Serie, y has almacenado estos objetos en un ArrayList utilizando polimorfismo. Además, has recorrido la lista con un bucle foreach y has usado instanceof para verificar si el objeto es una Pelicula antes de acceder a su método de clasificación.

Todo parece estar en orden en tu código. Aquí tienes un par de cosas que podrías revisar o considerar:

  1. Uso de instanceof con patrón de coincidencia: Estás utilizando una característica de Java más reciente que permite combinar instanceof con una declaración de variable, lo cual es excelente para hacer el código más limpio y legible.

  2. Evaluación de Películas: Asegúrate de que el método evalua y el método getClasificacion en la clase Pelicula estén implementados correctamente para que devuelvan los valores esperados.

  3. Salida esperada: Comprueba que la salida del programa sea la esperada. Deberías ver los nombres de todos los títulos en la lista y las clasificaciones solo para las películas con una clasificación mayor a 2.

Si todo esto está correcto, parece que has logrado completar la tarea con éxito. Espero que esto te ayude a confirmar que estás en el camino correcto. ¡Espero haber ayudado y buenos estudios!