Netflix

DIAGRAMA DE CLASES VIDEO IVISUALIZABLE Métodos: marcarVisto() esVisto() tiempoVisto() Atributos: String titulo String

Views 247 Downloads 38 File size 108KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

DIAGRAMA DE CLASES

VIDEO

IVISUALIZABLE Métodos: marcarVisto() esVisto() tiempoVisto()

Atributos: String titulo String genero String creador Int duración Boolean visto Metodos: getTitulo() setTitulo() getGenero() setGenero() getCreador() setCreador() getDuracion() setDuracion() toString()

SERIE

PELICULA

Atributos: Int nroTemporadas Métodos: getNroTemporadas() setNroTempordas() toString()

Atributos: Int anio Métodos: getAnio() setAnio() toString()

CODIGO FUENTE

CODIGO DE LA CLASE PADRE VIDEO public class Video implements IVisualizable{ private String titulo; private String genero; private String creador; private int duracion; /*La duracion de un video lo manejare en segundos, por eso declaro un entero*/ private boolean visto ; /* Declarando Constructores, el problema pide crear constructores tanto para Pelicula y como Serie*/ //Construtor default public Video(){ this.titulo = "Titulo por default"; this.genero = "Género por defecto"; this.creador = "Creador por defecto"; this.duracion = 0; this.visto = false; } //Constructor con 2 parametros public Video(String titulo, String creador){ this.titulo = titulo; this.creador = creador; this.genero = "Género por defecto"; this.duracion = 0; this.visto = false; } //Constructor con todos los atributos menos visto public Video(String titulo, String genero, String creador, int duracion){ this.titulo = titulo; this.genero = genero; this.creador = creador; this.duracion = duracion; } /*Creando Getters and Setters de todos los atributos menos del atributo visto*/ public String getTitulo() { return titulo; } public void setTitulo(String titulo) { this.titulo = titulo; }

tres

public String getGenero() { return genero; } public void setGenero(String genero) { this.genero = genero; } public String getCreador() { return creador; } public void setCreador(String creador) { this.creador = creador; } public int getDuracion() { return duracion; } public void setDuracion(int duracion) { this.duracion = duracion; } /* Sobreescribiendo el metodo toString*/ @Override public String toString() { // TODO Auto-generated method stub return "\tTitulo: " + getTitulo() + "\n\tGénero: " + getGenero() + "\n\tCreador: " + getCreador() + "\n\tDuración: "+ tiempoVisto() + "\n\tVisto: " + esVisto(); } /* Implementando los metodos de mi interface*/ @Override public void marcarVisto() { // TODO Auto-generated method stub this.visto = true; } @Override public boolean esVisto() { // TODO Auto-generated method stub return this.visto; } /* devuelvo la duracion de la pelicula, supongo que eso es lo que queria mostrar con tiempo visto*/ @Override public String tiempoVisto() { // TODO Auto-generated method stub String tiempoVisto;

if (getDuracion() < 60) { tiempoVisto = getDuracion()+ " segundos"; }else{ tiempoVisto = (getDuracion()/60) + " minutos y " + (getDuracion()%60) + "segundos"; } return tiempoVisto; } }

CLASE HIJA PELICULA

public class Pelicula extends Video{ private int anio; /*el año lo manejare como un entero ejem: 1992 , 2000, 2016*/ //Creando los contructores public Pelicula(){ super(); this.anio = 2008; } public Pelicula(String titulo, String creador){ super(titulo, creador); } public Pelicula(String titulo, String genero, String creador,int anio, int duracion ){ super(titulo, genero,creador, duracion); this.anio = anio; } /*Los metodos getters and setters solo necesito declarar estos 2 por que el resto los estoy hredando */ public int getAnio() { return anio; } public void setAnio(int anio) { this.anio = anio; } @Override public String toString() { return super.toString()+ "\n\tAño: " + getAnio() ;

}

}

CLASE HIJA SERIE

public class Serie extends Video{ private int nroTemporadas; //Creando los contructores public Serie(){ super(); this.nroTemporadas = 1; } public Serie(String titulo, String creador){ super(titulo, creador); } public Serie(String titulo, String creador , String genero , int duracion, int nroTemporadas){ super(titulo, genero, creador, duracion); this.nroTemporadas = nroTemporadas; } // getter and setter public int getNroTemporadas() { return nroTemporadas; } public void setNroTemporadas(int nroTemporadas) { this.nroTemporadas = nroTemporadas; } @Override public String toString() { // TODO Auto-generated method stub return super.toString() + "\n\tNro. Temporadas: " + getNroTemporadas(); } }

INTERFASE IVISUALIZABLE

public interface IVisualizable { public void marcarVisto(); public boolean esVisto(); public String tiempoVisto(); }

PRINCIPAL import java.util.ArrayList; public class Principal { public static void main(String[] args) { // TODO Auto-generated method stub //Creando los arrays con nuestros objetos ArrayList arrayPeliculas = new ArrayList(); ArrayList arraySeries = new ArrayList();

"Creador1"));

//Insertando Valores a Peliculas arrayPeliculas.add(new Pelicula()); arrayPeliculas.add(new Pelicula("Pelicula1",

arrayPeliculas.add(new Pelicula("Pelicula2", "Genero2", "Creador2", 2015, 360)); arrayPeliculas.add(new Pelicula("Pelicula3", "Genero3", "Creador3", 2010, 3600)); arrayPeliculas.add(new Pelicula("Pelicula4", "Creador4")); //Insertando Valores a Series arraySeries.add(new Serie()); arraySeries.add(new Serie("Serie1", arraySeries.add(new Serie("Serie2", "Genero2", 390, 1)); arraySeries.add(new Serie("Serie3", "Genero3", 190, 4)); arraySeries.add(new Serie("Serie4",

"Creador1")); "Creador2", "Creador3", "Creador5"));

/*Marcando visto a algunas peliculas y series y capturaremos posibles errores con el try y catch*/ try{ arrayPeliculas.get(6).marcarVisto(); arrayPeliculas.get(10).marcarVisto(); }catch(IndexOutOfBoundsException PeliculaError){ System.out.println("Estas intentando acceder a una Pelicula inexistente");

}finally{ //Marcaremos algunas Peliculas como vistas para probar que el metodo funciona arrayPeliculas.get(2).marcarVisto(); arrayPeliculas.get(3).marcarVisto(); } try{ arraySeries.get(9).marcarVisto(); arraySeries.get(3).marcarVisto(); }catch(IndexOutOfBoundsException PeliculaError){ System.out.println("Estas intentando acceder a una Serie inexistente"); }finally{ //Marcaremos algunas Series como vistas para probar que el metodo funciona arraySeries.get(2).marcarVisto(); arraySeries.get(3).marcarVisto(); }

netflix

//Mostrare primero todas las peliculas y series en

System.out.println("\nTotal de Peliculas"); for(int i = 0; i