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

Constructores

  1. Clase Titulo

Se declara un constructor que recibe nombre y fecha de lanzamiento.

package com.alura.screenmatch.modelos;

public class Titulo {

private String nombre;
private int fechaDeLanzamiento;

public Titulo(String nombre, int fechaDeLanzamiento) {
    this.nombre = nombre;
    this.fechaDeLanzamiento = fechaDeLanzamiento;
}

public String getNombre() {
    return nombre;
}

public int getFechaDeLanzamiento() {
    return fechaDeLanzamiento;
}

}
2. Clase Serie

Esta clase hereda de Titulo, por lo que su constructor debe llamar al constructor de la clase padre usando super().

package com.alura.screenmatch.modelos;

public class Serie extends Titulo {

public Serie(String nombre, int fechaDeLanzamiento) {
    super(nombre, fechaDeLanzamiento);
}

}
3. Clase Pelicula

También hereda de Titulo y llama al constructor padre.

package com.alura.screenmatch.modelos;

public class Pelicula extends Titulo implements Clasificable {

public Pelicula(String nombre, int fechaDeLanzamiento) {
    super(nombre, fechaDeLanzamiento);
}

}
4. Clase Principal

Aquí se corrigen los errores al crear los objetos, pasando nombre y fecha al constructor.

import com.alura.screenmatch.modelos.Pelicula;
import com.alura.screenmatch.modelos.Serie;

public class Principal {

public static void main(String[] args) {

    Pelicula favorita = new Pelicula("The Matrix", 1999);
    Pelicula otra = new Pelicula("Titanic", 1997);

    Serie serie = new Serie("Breaking Bad", 2008);

    System.out.println(favorita.getNombre());
    System.out.println(otra.getNombre());
    System.out.println(serie.getNombre());
}

}
Conceptos que se aplican en este ejercicio

Constructores

Herencia

Uso de super()

Creación de objetos

Encapsulamiento con getters

super() permite llamar al constructor de la clase padre, lo cual es necesario cuando esa clase no tiene constructor vacío.

1 respuesta

¡Hola David, espero que estés bien!

Parece que estás en el camino correcto con tu código. Has implementado correctamente los constructores en las clases Titulo, Serie y Pelicula, y también estás utilizando la palabra clave super() para llamar al constructor de la clase padre. Esto es esencial cuando la clase padre no tiene un constructor vacío.

En tu clase Principal, estás creando instancias de Pelicula y Serie correctamente al pasar los parámetros necesarios al constructor. Aquí tienes un ejemplo de cómo debería verse tu clase Principal:

import com.alura.screenmatch.modelos.Pelicula;
import com.alura.screenmatch.modelos.Serie;

public class Principal {

    public static void main(String[] args) {

        Pelicula favorita = new Pelicula("The Matrix", 1999);
        Pelicula otra = new Pelicula("Titanic", 1997);

        Serie serie = new Serie("Breaking Bad", 2008);

        System.out.println(favorita.getNombre());
        System.out.println(otra.getNombre());
        System.out.println(serie.getNombre());
    }
}

Este código debería funcionar correctamente, imprimiendo los nombres de las películas y la serie en la consola. Si experimentas algún problema, asegúrate de que todos los archivos están guardados y que no hay errores de sintaxis en otras partes del código.

Espero que esto te ayude y te deseo mucho éxito en tu aprendizaje de Java. ¡Espero haber ayudado y buenos estudios!