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

Haga lo que hicimos en aula: declarando constructores Próxima Actividad

¡Ahora es tu oportunidad! Haz el mismo procedimiento que hice en clase, declarando y usando constructores en las clases del proyecto. En la clase Titulo, declara el constructor que recibe el nombre y la fecha de lanzamiento:

package com.alura.screenmatch.modelos; public class Titulo { //atributos omitidos public Titulo(String nombre, int fechaDeLanzamiento) { this.nombre = nombre; this.fechaDeLanzamiento = fechaDeLanzamiento; } //metodos omitidos } Copia el código En la clase Serie, será necesario declarar el mismo constructor, y llamará al constructor de la clase madre usando la palabra reservada super:

pacakge com.alura.screenmatch.modelos;

public class Serie extends Titulo { //atributos omitidos public Serie(String nombre, int fechaDeLanzamiento) { super(nombre, fechaDeLanzamiento); } //metodos omitidos } Copia el código Lo mismo se debe hacer con la clase Película:

pacakge com.alura.screenmatch.modelos;

public class Pelicula extends Titulo implements Clasificable{ //atributos omitidos public Pelicula(String nombre, int fechaDeLanzamiento) { super(nombre, fechaDeLanzamiento); } //metodos omitidos } Copia el código Finalmente, en la clase Principal, corrije los errores de compilación que están sucediendo al instanciar los objetos Pelicula y Serie, pasando el nombre y fecha de lanzamiento en el constructor. Por ejemplo:

Pelicula favorita = new pelicula(“The Matrix”, 1999);

SOLUCION: ¡Excelente! Aquí está el código corregido, aplicando los constructores y solucionando los errores de compilación en la clase Principal:

package com.alura.screenmatch.modelos;

public class Titulo { // atributos omitidos public Titulo(String nombre, int fechaDeLanzamiento) { this.nombre = nombre; this.fechaDeLanzamiento = fechaDeLanzamiento; } // métodos omitidos }

package com.alura.screenmatch.modelos;

public class Serie extends Titulo { // atributos omitidos public Serie(String nombre, int fechaDeLanzamiento) { super(nombre, fechaDeLanzamiento); } // métodos omitidos }

package com.alura.screenmatch.modelos;

public class Pelicula extends Titulo implements Clasificable { // atributos omitidos public Pelicula(String nombre, int fechaDeLanzamiento) { super(nombre, fechaDeLanzamiento); } // métodos omitidos }

// Clase Principal (corregida) package com.alura.screenmatch;

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

public class Principal { public static void main(String[] args) { Pelicula miPeliculaFavorita = new Pelicula("The Matrix", 1999); Serie miSerieFavorita = new Serie("Friends", 1994);

    // ... resto del código ...
}

}

Cambios realizados:

Constructores en Titulo, Serie y Pelicula: Se agregaron los constructores que reciben nombre y fechaDeLanzamiento, y en las subclases se llama al constructor de la superclase (Titulo) usando super. Principal corregida: Se corrigieron las instanciaciones de Pelicula y Serie para pasar los argumentos requeridos por sus constructores. Puntos importantes:

super: La palabra clave super se utiliza para llamar al constructor de la superclase. Es importante hacerlo al principio del constructor de la subclase. Errores de compilación: Los errores de compilación originales ocurrían porque se intentaba crear objetos de Pelicula y Serie sin proporcionar los argumentos que sus constructores ahora esperan. Case-sensitive: Java es sensible a mayúsculas y minúsculas. Asegúrate de que los nombres de las clases y variables coincidan exactamente al crear objetos (por ejemplo, new Pelicula(...) en lugar de new pelicula(...)).

1 respuesta

Hola Frank, espero que estés bien

Gracias por compartir tu ejercício práctico con nosotros! Tu contribución es fundamental para el crecimiento de nuestra comunidad en Alura. Sigue comprometido y no dudes en regresar al foro en caso que tengas alguna duda o dificultad.

¡Abrazos y buenos estudios!

Si este post te ayudó, por favor, marca como solucionado ✓. Continúa con tus estudios!