package com.entronomia.aplicaciones.modelos;
public class Titulo implements Comparable<Titulo>{
private String nombre;
private int fechaDeLanzamiento;
private int duracionEnMinutos;
private boolean incluidaEnElPlan;
private double sumaDeLasEvaluaciones = 0;
private int numeroDeEvaluaciones = 0;
private double mediaDeLasEvaluaciones = 0;
public Titulo(String nombre, int fechaDeLanzamiento) {
this.nombre = nombre;
this.fechaDeLanzamiento = fechaDeLanzamiento;
}
public String getNombre() {
return nombre;
}
public int getFechaDeLanzamiento() {
return fechaDeLanzamiento;
}
public int getDuracionEnMinutos() {
return duracionEnMinutos;
}
public boolean isIncluidaEnElPlan() {
return incluidaEnElPlan;
}
public void setDuracionEnMinutos(int duracionEnMinutos) {
this.duracionEnMinutos = duracionEnMinutos;
}
public void setIncluidaEnElPlan(boolean incluidaEnElPlan) {
this.incluidaEnElPlan = incluidaEnElPlan;
}
public double getMediaDeLasEvaluaciones() {
return mediaDeLasEvaluaciones;
}
public void imprimeDatos() {
System.out.println("Nombre de la película: " + getNombre());
System.out.println("Fecha de lanzamiento: " + getFechaDeLanzamiento());
System.out.println("Duración [min]: " + getDuracionEnMinutos());
}
public void evaluaPelicula(double nota) {
sumaDeLasEvaluaciones = sumaDeLasEvaluaciones + nota;
numeroDeEvaluaciones = numeroDeEvaluaciones +1;
}
public double calculaMediaDeLasEvaluaciones() {
mediaDeLasEvaluaciones = sumaDeLasEvaluaciones / numeroDeEvaluaciones;
return mediaDeLasEvaluaciones;
}
public int getClasificacion() {
return (int) (calculaMediaDeLasEvaluaciones() / 2);
}
@Override
public int compareTo(Titulo titulo) {
return this.getNombre().compareTo(titulo.getNombre());
}
}
package com.entronomia.aplicaciones.modelos;
import com.entronomia.aplicaciones.calculos.Clasificacion;
public class Serie extends Titulo implements Clasificacion {
private int temporadas;
private int episodiosPorTemporada;
private int minutosPorEpisodio;
public Serie(String nombre, int fechaDeLanzamiento) {
super(nombre, fechaDeLanzamiento);
}
@Override
public int getDuracionEnMinutos() {
return temporadas * episodiosPorTemporada * minutosPorEpisodio;
}
public int getTemporadas() {
return temporadas;
}
public int getEpisodiosPorTemporada() {
return episodiosPorTemporada;
}
public int getMinutosPorEpisodio() {
return minutosPorEpisodio;
}
public void setTemporadas(int temporadas) {
this.temporadas = temporadas;
}
public void setEpisodiosPorTemporada(int episodiosPorTemporada) {
this.episodiosPorTemporada = episodiosPorTemporada;
}
public void setMinutosPorEpisodio(int minutosPorEpisodio) {
this.minutosPorEpisodio = minutosPorEpisodio;
}
@Override
public String toString() {
return "Serie: " + this.getNombre() + "(" + this.getFechaDeLanzamiento() + ")";
}
@Override
public int getClasificacion() {
return super.getClasificacion();
}
}
package com.entronomia.aplicaciones.principal;
import com.entronomia.aplicaciones.modelos.Pelicula;
import com.entronomia.aplicaciones.modelos.Serie;
import com.entronomia.aplicaciones.modelos.Titulo;
import java.util.ArrayList;
import java.util.Collections;
public class InventarioUno {
public static void main(String[] args) {
Pelicula peliculaI = new Pelicula("2012", 2009);
Pelicula peliculaII = new Pelicula("Lawrence de Arabia", 1962);
Pelicula peliculaIII = new Pelicula("Ciudadano Kane", 1940);
Serie serieI = new Serie("La reina de Indias y el conquistador", 2020);
ArrayList<Titulo> listaDeTitulos = new ArrayList<>();
listaDeTitulos.add(peliculaI);
listaDeTitulos.add(peliculaII);
listaDeTitulos.add(peliculaIII);
listaDeTitulos.add(serieI);
ArrayList<String> nombreFisicos = new ArrayList<>();
nombreFisicos.add("Albert Einstein");
nombreFisicos.add("Max Planck");
nombreFisicos.add("Isaac Newton");
nombreFisicos.add("Niels Bohr");
nombreFisicos.add("Galileo Galilei");
nombreFisicos.add("Michael Faraday");
System.out.println("Lista físicos desordenada: " + nombreFisicos);
Collections.sort(nombreFisicos);
System.out.println("Lista físicos ordenada: " + nombreFisicos);
Collections.sort(listaDeTitulos);
System.out.println("Lista títulos ordenada: " + listaDeTitulos);
}
}