Sei sulla pagina 1di 9

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(){
this.titulo = "Titulo por default";
this.genero = "Gnero 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 = "Gnero 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;
}
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\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
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 ao 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\tAo: " + 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<Pelicula> arrayPeliculas = new
ArrayList<Pelicula>();
ArrayList<Serie> arraySeries = new
ArrayList<Serie>();

//Insertando Valores a Peliculas


arrayPeliculas.add(new Pelicula());
arrayPeliculas.add(new Pelicula("Pelicula1",
"Creador1"));
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", "Creador1"));
arraySeries.add(new Serie("Serie2", "Creador2",
"Genero2", 390, 1));
arraySeries.add(new Serie("Serie3", "Creador3",
"Genero3", 190, 4));
arraySeries.add(new Serie("Serie4", "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();
}

//Mostrare primero todas las peliculas y series en


netflix
System.out.println("\nTotal de Peliculas");
for(int i = 0; i<5; i++){
System.out.println("\n"+
arrayPeliculas.get(i).toString());
}
System.out.println("\nTotal de Series");
for(int i = 0; i<5; i++){

System.out.println("\n"+arraySeries.get(i).toString());
}

/*Mostrar una lista de las peliculas y series que


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

+ arrayPeliculas.get(i).tiempoVisto());

}
if(arraySeries.get(i).esVisto() == true){
System.out.println("\n\t" +
arraySeries.get(i).getTitulo() + " visto aproximadamente "
+ arraySeries.get(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 (arrayPeliculas.get(i).getAnio() >
peliculaReciente){
peliculaReciente =
arrayPeliculas.get(i).getAnio();
resultadoPelicula = i;
}

if (arraySeries.get(i).getNroTemporadas() >
nroTemporadas){
nroTemporadas =
arraySeries.get(i).getNroTemporadas();
resultadoSerie = i;
}
}

System.out.println("\n\nEsta es la pelcula mas


reciente de NetFlix: ");
System.out.println("\n"+
arrayPeliculas.get(resultadoPelicula).toString());

System.out.println("\nEsta es la serie con mas


temporadas de NetFlix: ");
System.out.println("\n"+
arraySeries.get(resultadoSerie).toString());
}

Potrebbero piacerti anche