50% encontró este documento útil (2 votos)
713 vistas9 páginas

Netflix

El documento presenta un diagrama de clases para modelar videos, películas y series. Se definen las clases Video, Película y Serie, con sus atributos, métodos y relaciones de herencia. También incluye una interfaz IVisualizable y una clase Principal para probar el modelo.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
50% encontró este documento útil (2 votos)
713 vistas9 páginas

Netflix

El documento presenta un diagrama de clases para modelar videos, películas y series. Se definen las clases Video, Película y Serie, con sus atributos, métodos y relaciones de herencia. También incluye una interfaz IVisualizable y una clase Principal para probar el modelo.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

DIAGRAMA DE CLASES

VIDEO IVISUALIZABLE
Mtodos:
Atributos: marcarVisto()
String titulo esVisto()
String genero tiempoVisto()
String creador
Int duracin
Boolean visto
Metodos:
getTitulo()
setTitulo()
getGenero()
setGenero()
getCreador()
setCreador()
getDuracion()
setDuracion()
toString()

SERIE PELICULA

Atributos: Atributos:
Int nroTemporadas Int anio
Mtodos: Mtodos:
getNroTemporadas() getAnio()
setNroTempordas() setAnio()
toString() 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 tres


constructores tanto para Pelicula y como Serie*/

//Construtor default
public Video(){
[Link] = "Titulo por default";
[Link] = "Gnero por defecto";
[Link] = "Creador por defecto";
[Link] = 0;
[Link] = false;
}

//Constructor con 2 parametros


public Video(String titulo, String creador){
[Link] = titulo;
[Link] = creador;
[Link] = "Gnero por defecto";
[Link] = 0;
[Link] = false;

}
//Constructor con todos los atributos menos visto
public Video(String titulo, String genero, String
creador, int duracion){
[Link] = titulo;
[Link] = genero;
[Link] = creador;
[Link] = duracion;

/*Creando Getters and Setters de todos los atributos


menos del atributo visto*/

public String getTitulo() {


return titulo;
}

public void setTitulo(String titulo) {


[Link] = titulo;
}
public String getGenero() {
return genero;
}

public void setGenero(String genero) {


[Link] = genero;
}

public String getCreador() {


return creador;
}

public void setCreador(String creador) {


[Link] = creador;
}

public int getDuracion() {

return duracion;
}

public void setDuracion(int duracion) {


[Link] = duracion;
}

/* Sobreescribiendo el metodo toString*/


@Override
public String toString() {
// TODO Auto-generated method stub
return "\tTitulo: " + getTitulo() + "\n\tGnero:
" + getGenero()
+ "\n\tCreador: " + getCreador() +
"\n\tDuracin: "+ tiempoVisto() + "\n\tVisto: " + esVisto();
}

/* Implementando los metodos de mi interface*/


@Override
public void marcarVisto() {
// TODO Auto-generated method stub
[Link] = true;

@Override
public boolean esVisto() {
// TODO Auto-generated method stub
return [Link];
}
/* 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 ao lo manejare como un entero
ejem: 1992 , 2000, 2016*/

//Creando los contructores


public Pelicula(){
super();
[Link] = 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);
[Link] = 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) {


[Link] = anio;
}

@Override
public String toString() {

return [Link]()+ "\n\tAo: " + getAnio()


;
}
}

CLASE HIJA SERIE


public class Serie extends Video{
private int nroTemporadas;

//Creando los contructores


public Serie(){
super();
[Link] = 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);
[Link] = nroTemporadas;
}

// getter and setter


public int getNroTemporadas() {
return nroTemporadas;
}

public void setNroTemporadas(int nroTemporadas) {


[Link] = nroTemporadas;
}

@Override
public String toString() {
// TODO Auto-generated method stub
return [Link]() + "\n\tNro. Temporadas: "
+ getNroTemporadas();
}

INTERFASE IVISUALIZABLE
public interface IVisualizable {

public void marcarVisto();


public boolean esVisto();
public String tiempoVisto();

PRINCIPAL

import [Link];
public class Principal {

public static void main(String[] args) {


// TODO Auto-generated method stub

//Creando los arrays con nuestros objetos


ArrayList<Pelicula> arrayPeliculas = new
ArrayList<Pelicula>();
ArrayList<Serie> arraySeries = new
ArrayList<Serie>();

//Insertando Valores a Peliculas


[Link](new Pelicula());
[Link](new Pelicula("Pelicula1",
"Creador1"));
[Link](new Pelicula("Pelicula2",
"Genero2", "Creador2", 2015, 360));
[Link](new Pelicula("Pelicula3",
"Genero3", "Creador3", 2010, 3600));
[Link](new Pelicula("Pelicula4",
"Creador4"));

//Insertando Valores a Series


[Link](new Serie());
[Link](new Serie("Serie1", "Creador1"));
[Link](new Serie("Serie2", "Creador2",
"Genero2", 390, 1));
[Link](new Serie("Serie3", "Creador3",
"Genero3", 190, 4));
[Link](new Serie("Serie4", "Creador5"));

/*Marcando visto a algunas peliculas y series y


capturaremos posibles errores con el try y catch*/
try{
[Link](6).marcarVisto();
[Link](10).marcarVisto();
}catch(IndexOutOfBoundsException PeliculaError){
[Link]("Estas intentando
acceder a una Pelicula inexistente");
}finally{
//Marcaremos algunas Peliculas como vistas
para probar que el metodo funciona
[Link](2).marcarVisto();
[Link](3).marcarVisto();
}

try{
[Link](9).marcarVisto();
[Link](3).marcarVisto();
}catch(IndexOutOfBoundsException PeliculaError){
[Link]("Estas intentando
acceder a una Serie inexistente");
}finally{
//Marcaremos algunas Series como vistas
para probar que el metodo funciona
[Link](2).marcarVisto();
[Link](3).marcarVisto();
}

//Mostrare primero todas las peliculas y series en


netflix
[Link]("\nTotal de Peliculas");
for(int i = 0; i<5; i++){
[Link]("\n"+
[Link](i).toString());
}
[Link]("\nTotal de Series");
for(int i = 0; i<5; i++){

[Link]("\n"+[Link](i).toString());
}

/*Mostrar una lista de las peliculas y series que


se visualizaron y mostrar los minutos y segundos visualizados*/
[Link]("\nLista de Peliculas y Series
vistas: ");
for (int i=0; i<5; i++){
if([Link](i).esVisto() == true)
{
[Link]("\n\t" +
[Link](i).getTitulo() + " visto aproximadamente "

+ [Link](i).tiempoVisto());

}
if([Link](i).esVisto() == true){
[Link]("\n\t" +
[Link](i).getTitulo() + " visto aproximadamente "
+ [Link](i).tiempoVisto());

/*Mostrar la serie con mas temporadas y la


pelicula del ao mas reciente usar el Metodo toString*/
int nroTemporadas = 0;
int peliculaReciente = 0;
int resultadoPelicula = 0;//almacena el indice del
array con la pelicula mas reciente
int resultadoSerie = 0;//almacenara el indice del
array con la serie con mas temporadas

for (int i = 0 ; i < 5 ; i ++){


if ([Link](i).getAnio() >
peliculaReciente){
peliculaReciente =
[Link](i).getAnio();
resultadoPelicula = i;
}

if ([Link](i).getNroTemporadas() >
nroTemporadas){
nroTemporadas =
[Link](i).getNroTemporadas();
resultadoSerie = i;
}
}

[Link]("\n\nEsta es la pelcula mas


reciente de NetFlix: ");
[Link]("\n"+
[Link](resultadoPelicula).toString());

[Link]("\nEsta es la serie con mas


temporadas de NetFlix: ");
[Link]("\n"+
[Link](resultadoSerie).toString());
}

También podría gustarte