Escolar Documentos
Profissional Documentos
Cultura Documentos
Android
Tarea: Netflix (Semana 2)
Autor: Luis Jos Melndez Ruiz
Fecha: 27-03-2016
Diagrama de Clases
Clase Pelicula
package netflix;
/*
* @autor: LUIS JOSE MELENDEZ RUIZ
* @fecha: 27-03-2016
*
*/
public class Pelicula extends Stream {
// Atributos (los dems estan en la clase padre Stream)
private int anio; // Ejemplo: 1990
// Constructor default
public Pelicula() {
super();
this.ao = 0;
}
// Constructor con ttulo y creador. Los dems campos tienen valor default
public Pelicula(String titulo, String creador) {
super(titulo, creador);
}
// Constructor con todos los atributos, excepto visto
public Pelicula(String titulo, String genero, String creador, int anio, int duracion) {
super(titulo, genero, creador, duracion);
this.anio = anio;
}
// Mtodos GET y SET de todos los atributos (los dems estan en la clase padre Stream)
public int getAnio() {
return anio;
}
public void setAnio(int anio) {
this.anio = anio;
}
// Sobreescritura de mtodo toString
@Override
public String toString() {
String info = super.toString() + "\n";
info = info + "Ao: " + anio;
return info;
}
}
Clase Serie
package netflix;
/*
* @autor: LUIS JOSE MELENDEZ RUIZ
* @fecha: 27-03-2016
*
*/
public class Serie extends Stream {
// Atributos (los dems estan en la clase padre Stream)
private int nroTemporadas;
// Constructor default
public Serie() {
super();
this.nroTemporadas = 1; // valor 1 por defecto
}
// Constructor con ttulo y creador. Los dems campos tienen valor default
public Serie(String titulo, String creador) {
super(titulo, creador);
}
// Constructor con todos los atributos, excepto visto
public Serie(String titulo, int nroTemporadas, String genero, String creador, int duracion) {
super(titulo, genero, creador, duracion);
this.nroTemporadas = nroTemporadas;
}
// Mtodos GET y SET de todos los atributos (los dems estan en la clase padre Stream)
public int getNroTemporadas() {
return nroTemporadas;
}
public void setNroTemporadas(int nroTemporadas) {
this.nroTemporadas = nroTemporadas;
}
// Sobreescritura de mtodo toString
@Override
public String toString() {
String info = super.toString() + "\n";
info = info + "Nro Temporadas: " + nroTemporadas;
return info;
}
}
Clase Stream
Pelicula y Serie)
package netflix;
/*
* @autor: LUIS JOSE MELENDEZ RUIZ
* @fecha: 27-03-2016
*
*/
public class Stream implements Visualizable {
// Atributos
private String titulo;
private String genero;
private String creador;
private int duracion; // Ejemplo: 97 (indica una duracin de 97 minutos)
private boolean visto; // Ejemplo: true o false
// Constructor default
public Stream() {
this.titulo = "No definido";
this.genero = "No definido";
this.creador = "No definido";
this.duracion = 0;
this.visto = false; // valor FALSE por defecto
}
// Constructor con ttulo y creador. Los dems campos tienen valor default
public Stream(String titulo, String creador) {
this.titulo = titulo;
this.creador = creador;
}
// Constructor con todos los atributos, excepto visto
public Stream(String titulo, String genero, String creador, int duracion) {
this.titulo = titulo;
this.genero = genero;
this.creador = creador;
this.duracion = duracion;
}
// Mtodos GET y SET de todos los atributos, excepto visto
public String getTitulo() {
return titulo;
}
public void setTitulo(String titulo) {
this.titulo = titulo;
}
Clase Visualizable
(Interface implementada en
Stream)
package netflix;
/*
* @autor: LUIS JOSE MELENDEZ RUIZ
* @fecha: 27-03-2016
*
*/
public interface Visualizable {
// Este mtodo cambiar el atributo de visto a true
public void marcarVisto();
// Este mtodo devolver el estado del atributo visto
public boolean esVisto();
// Este mtodo devolver el tiempo en minutos/segundo que se visualiz el video
public int tiempoVisto();
}
Clase Netflix
(clase ejecutable)
package netflix;
/*
* @autor: LUIS JOSE MELENDEZ RUIZ
* @fecha: 27-03-2016
*
*/
public class Netflix {
public static void main(String[] args) {
// Creo dos arrays de 5 elementos. Uno de Peliculas y otro de Series
Pelicula [] peliculas = new Pelicula[5];
Serie [] series = new Serie[5];
// Creo los objetos Pelicula
peliculas[0] = new Pelicula("Armageddon","Sci-fi","Michael Bay",1998,153);
peliculas[1] = new Pelicula("Titanic","Catstrofe, Drama","James Cameron",1997,210);
peliculas[2] = new Pelicula("The godfather","Gngsters, Drama","Francis Ford
Coppola",1972,178);
peliculas[3] = new Pelicula("Las vacaciones de Mr. Bean","Comedia, Road
movie","Steve Bendelack",2007,90);
peliculas[4] = new Pelicula("The Ring","Suspenso, Misterio","Gore Verbinski",2002,145);
// Creo los objetos Serie
series[0] = new Serie("Smallville",9,"Sci-fi","Alfred Gough",45);
series[1] = new Serie("Game of Thrones",5,"Fantasa, Medieval","David Benioff",65);
series[2] = new Serie("Friends",10,"Comedia","Martha Kauffman",22);
series[3] = new Serie("CSI: Miami",8,"Policial, Drama","Jerry Bruckheimer",45);
series[4] = new Serie("The Suite life on Deck",3,"Teens","Danny Kallis",24);
// Se marcan como vistas algunas peliculas y series
peliculas[0].marcarVisto();
peliculas[2].marcarVisto();
peliculas[4].marcarVisto();
series[1].marcarVisto();
series[3].marcarVisto();
// En esta parte se mostrar una lista de las Pelculas y Series que se visualizaron y un
detalle de los minutos visualizados
int minVistosPeliculas = 0;
int minVistosSeries = 0;
int totalMinVistos = 0;
System.out.println("***** Lista de Peliculas y Series Visualizadas *****");
System.out.println(""); // Para hacer un salto de lnea
for(int i=0; i<5; i++) {
if(peliculas[i].esVisto()) {
System.out.println("[Pelicula] " + peliculas[i].getTitulo() + " (" +
peliculas[i].getDuracion() + " minutos)");
minVistosPeliculas += peliculas[i].getDuracion();
}
if(series[i].esVisto()) {
System.out.println("[Serie] " + series[i].getTitulo() + " (" +
series[i].getDuracion() + " minutos)");
minVistosSeries += series[i].getDuracion();
}
}
totalMinVistos = minVistosPeliculas + minVistosSeries;
System.out.println(""); // Para hacer un salto de lnea
System.out.println("Minutos Vistos [Peliculas]: " + minVistosPeliculas);
System.out.println("Minutos Vistos [Series]: " + minVistosSeries);
System.out.println("Tiempo total: " + totalMinVistos + " minutos");
// En esta parte se indicar la Serie con ms temporadas y la pelcula del ao ms
reciente. Muestro en pantalla toda su informacin
int indiceSerieMasTemporadas = 0;
int indicePeliculaMasReciente = 0;
int nroTemporadas = series[0].getNroTemporadas();
int ao = peliculas[0].getAnio();
for(int i=0; i<5; i++) {
// Aqu obtengo el indice de la pelcula ms reciente
if(peliculas[i].getAnio() > ao) {
ao = peliculas[i].getAnio();
indicePeliculaMasReciente = i;
}
// Aqu obtengo el indice de la serie con ms temporadas
if(series[i].getNroTemporadas() > nroTemporadas) {
nroTemporadas = series[i].getNroTemporadas();
indiceSerieMasTemporadas = i;
}
}
// Se muestra la informacion utilizando el mtodo toString().
System.out.println(""); // Para hacer un salto de lnea
System.out.println("***** Pelcula ms reciente ***** ");
System.out.println(peliculas[indicePeliculaMasReciente].toString());
System.out.println(""); // Para hacer un salto de lnea
System.out.println("***** Serie con ms temporadas ***** ");
System.out.println(series[indiceSerieMasTemporadas].toString());
}
}