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

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 miPelicula = new Pelicula("Encanto", 221);
        miPelicula.evalua(9);
        Pelicula otraPelicula = new Pelicula("Matrix", 1998);
        otraPelicula.evalua(6);
        var peliculaDeBruno = new Pelicula("Señor de los anillos", 2001);
        peliculaDeBruno.evalua(10);
        Serie casaDragon = new Serie("La casa del Dragón", 2022);
        
        Pelicula pe1 = peliculaDeBruno;

        ArrayList<Titulo> lista = new ArrayList<>();
        lista.add(miPelicula);
        lista.add(otraPelicula);
        lista.add(peliculaDeBruno);
        lista.add(casaDragon);

        for (Titulo item: lista) {
            System.out.println(item.getNombre());
            if (item instanceof Pelicula pelicula && pelicula.getClasificacion() >3){
                System.out.println(pelicula.getClasificacion());
            }
        }

    }
}
1 respuesta

¡Hola, Sebastian!

Parece que estás en el camino correcto al implementar el ejercicio de la clase. Has creado una lista de títulos y estás usando un bucle foreach para recorrerla, utilizando instanceof para verificar si el objeto es una instancia de Pelicula antes de hacer el casting.

Tu código es bastante similar al ejemplo proporcionado en la actividad. Solo asegúrate de que los métodos getNombre() y getClasificacion() existan y estén correctamente implementados en las clases Pelicula y Serie. Si estos métodos no están definidos, necesitarás agregarlos para que el código funcione correctamente.

Aquí tienes un ejemplo de cómo podrían verse estos métodos en la clase Pelicula:

public class Pelicula extends Titulo {
    private int clasificacion;

    public Pelicula(String nombre, int año) {
        super(nombre, año);
    }

    public void evalua(int clasificacion) {
        this.clasificacion = clasificacion;
    }

    public int getClasificacion() {
        return clasificacion;
    }

    public String getNombre() {
        return super.getNombre();
    }
}

Asegúrate de que la clase Serie también tenga un método getNombre() similar. Con estos métodos en su lugar, tu código debería funcionar como se espera.

Espero que esto te ayude y te deseo buenos estudios. ¡Sigue adelante!