Les comparto el código de las clases, por si alguno puede ayudarme se lo agradecería. CLASE SERIE package com.aluracursos.screenmatch.modelos;
public class Serie extends Titulo{ int temporadas; int episodiosPorTemporada; int minutosPorEpisodio;
public int getDurancionEnMinutos(){
return temporadas * episodiosPorTemporada * minutosPorEpisodio;
}
public int getTemporadas() {
return temporadas;
}
public void setTemporadas(int temporadas) {
this.temporadas = temporadas;
}
public int getEpisodiosPorTemporada() {
return episodiosPorTemporada;
}
public void setEpisodiosPorTemporada(int episodiosPorTemporada) {
this.episodiosPorTemporada = episodiosPorTemporada;
}
public int getMinutosPorEpisodio() {
return minutosPorEpisodio;
}
public void setMinutosPorEpisodio(int minutosPorEpisodio) {
this.minutosPorEpisodio = minutosPorEpisodio;
}
}
CLASE PELICULA package com.aluracursos.screenmatch.modelos;
public class Pelicula extends Titulo{ private String director;
public String getDirector() {
return director;
}
public void setDirector(String director) {
this.director = director;
}
}
CLASE TITULO package com.aluracursos.screenmatch.modelos;
public class Titulo { private String nombre; private int fechaDeLanzamiento; private int duracionEnMinutos; private boolean incluidoEnElPlan; private double sumaDeLasEvaluaciones; private int totalDeLasEvaluaciones;
public void setIncluidoEnElPlan(boolean incluidoEnElPlan) {
this.incluidoEnElPlan = incluidoEnElPlan;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setFechaDeLanzamiento(int fechaDeLanzamiento) {
this.fechaDeLanzamiento = fechaDeLanzamiento;
}
public int getTotalDeLasEvaluaciones(){
return totalDeLasEvaluaciones;
}
public void setDuracionEnMinutos(int duracionEnMinutos) {
this.duracionEnMinutos = duracionEnMinutos;
}
public int getDuracionEnMinutos() {
return duracionEnMinutos;
}
public void muestraFichaTecnica(){
System.out.println("El nombre de la pelicula es: " + nombre);
System.out.println("Fue lanzada en: " + fechaDeLanzamiento);
System.out.println("Su duracion es: "+ getDuracionEnMinutos());
}
public void evalua(double nota){
sumaDeLasEvaluaciones = sumaDeLasEvaluaciones + nota;
totalDeLasEvaluaciones++;
}
public double calculaMedia(){
return sumaDeLasEvaluaciones/ totalDeLasEvaluaciones;
}
}
CLASE PRINCIPAL import com.aluracursos.screenmatch.modelos.Pelicula; import com.aluracursos.screenmatch.modelos.Serie;
public class Principal { public static void main(String[] args) { Pelicula miPelicula = new Pelicula(); miPelicula.setNombre("Encanto"); miPelicula.setFechaDeLanzamiento(2021); miPelicula.setDuracionEnMinutos(120); miPelicula.setIncluidoEnElPlan(true);
miPelicula.muestraFichaTecnica();
miPelicula.evalua(10);
miPelicula.evalua(10);
miPelicula.evalua(7.8);
System.out.println(miPelicula.getTotalDeLasEvaluaciones());
System.out.println(miPelicula.calculaMedia());
Serie casaDragon = new Serie(); //crear una instancia
casaDragon.setNombre("La casa del dragon");
casaDragon.setFechaDeLanzamiento(2022);
casaDragon.setTemporadas(1);
casaDragon.setMinutosPorEpisodio(50);
casaDragon.setEpisodiosPorTemporada(10);
casaDragon.muestraFichaTecnica();
System.out.println(casaDragon.getDuracionEnMinutos()); // Este me sigue saliendo 0
}
}
¡Hola Cristel, espero que estés bien!
Entiendo que estás teniendo problemas con la duración de la serie en tu programa Java. Parece que estás teniendo dificultades para calcular la duración total en minutos de una serie, teniendo en cuenta la cantidad de temporadas, minutos por episodio y episodios por temporada.
Por lo que puedo entender del contexto que has compartido, parece que el problema radica en la implementación del método getDuraciónEnMinutos
en la clase Serie. Parece que estás intentando sobrescribir este método para calcular la duración total en minutos, pero estás teniendo problemas con el uso de super
y @Override
.
Mi sugerencia sería revisar la implementación del método getDuraciónEnMinutos
en la clase Serie y asegurarse de que esté calculando correctamente la duración total en minutos, teniendo en cuenta la lógica que mencionaste: temporadas * episodiosPorTemporada * minutosPorEpisodio
.
Además, parece que también estás teniendo problemas al llamar al método getDuraciónEnMinutos
desde la clase Título. Es importante asegurarse de que estás llamando al método correcto dependiendo del contexto (Película o Serie).
Espero que esta sugerencia te ayude a resolver tu problema. Si necesitas más ayuda con la implementación de estos métodos, no dudes en compartir más detalles para que pueda brindarte una ayuda más específica.
Espero haber ayudado y buenos estudios!
Hola! El problema de que se imprima 0 en vez de 500 se debe a que en tu clase Serie estás calculando la duración de la serie (getDuracionEnMinutos()) utilizando el campo minutos, pero nunca le asignas un valor al campo minutos en el código.
En el main, estableces la duración de un episodio de la serie con casaDragon.setDuracionEnMinutos(50);, pero este método pertenece a la clase Titulo (que Serie hereda), y en tu clase Serie, tienes un campo minutos diferente que no está siendo afectado por el método setDuracionEnMinutos.
Para corregir esto, puedes modificar el método setDuracionEnMinutos en la clase Serie para que también actualice el campo minutos de la serie. Aquí te dejo la corrección:
package com.aluracursos.screenmatch.modelos;
public class Serie extends Titulo { private int temporadas; private int episodiosXtemp; private int minutos; // Minutos por episodio
@Override
public int getDuracionEnMinutos() {
return temporadas * episodiosXtemp * minutos;
}
@Override
public void setDuracionEnMinutos(int minutos) {
this.minutos = minutos; // Asigna los minutos por episodio
}
public int getTemporadas() {
return temporadas;
}
public void setTemporadas(int temporadas) {
this.temporadas = temporadas;
}
public int getEpisodiosXtemp() {
return episodiosXtemp;
}
public void setEpisodiosXtemp(int episodiosXtemp) {
this.episodiosXtemp = episodiosXtemp;
}
public int getMinutos() {
return minutos;
}
public void setMinutos(int minutos) {
this.minutos = minutos;
}
}