ESTE TRABAJO SE MODIFICO LA CLASE PRINCIPAL PARA
TRABAJAR CON ARRAYLIST Y EXCEPCIONES
(FINAL DEL DOCUMENTO)
Trabajo por rubro:
Modelo de Datos (Diagrama de Clases)
El modelo se realizo en el software StarUML, donde especifico la superclase Cine y de
ahíí las dos clases Pelicula y Serie como clases heredadas de Cine y se agregan los
atributos y meí todos propios de cada una, adicional se crea la Interface Visualizable
que solo define los meí todos y en donde se implementan en cada clase.
CLASE PADRE CINE:
package itq.edu.mx.netflix;
public class Cine {
private String titulo;
private String genero;
private String creador;
private int duracion;
public boolean visto;
public Cine(String titulo, String genero, String creador, int
duracion) {
super();
this.titulo = titulo;
this.genero = genero;
this.creador = creador;
this.duracion = duracion;
this.visto = false;
}
public Cine(String titulo, String creador) {
super();
this.titulo = titulo;
this.creador = creador;
this.genero = "";
this.duracion = 0;
this.visto = false;
}
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;
}
@Override
public String toString() {
return "Cine [titulo=" + titulo + ", genero=" + genero + ",
creador=" + creador + ", duracion=" + duracion
+ ", visto=" + visto + "]";
}
CLASE HIJO PELICULA:
package itq.edu.mx.netflix;
public class Pelicula extends Cine implements Visualizable{
private int anio;
public Pelicula(String titulo, String genero, String creador, int
duracion, int anio) {
super(titulo, genero, creador, duracion);
// TODO Auto-generated constructor stub
this.anio = anio;
}
public Pelicula(String titulo, String creador, int anio) {
super(titulo, creador);
// TODO Auto-generated constructor stub
this.anio = anio;
}
public int getAnio() {
return anio;
}
public void setAnio(int anio) {
this.anio = anio;
}
@Override
public void marcarVisto() {
// TODO Auto-generated method stub
this.visto=true;
}
@Override
public boolean esVisto() {
// TODO Auto-generated method stub
return this.visto;
}
public int tiempoVisto() {
// TODO Auto-generated method stub
if (this.esVisto())
return this.getDuracion();
else
return 0;
}
CLASE HIJO SERIE:
package itq.edu.mx.netflix;
public class Serie extends Cine implements Visualizable{
private int numTemporadas;
public Serie(String titulo, String genero, String creador, int
duracion, int numTemporadas) {
super(titulo, genero, creador, duracion);
// TODO Auto-generated constructor stub
this.numTemporadas = numTemporadas;
}
public Serie(String titulo, String genero, String creador, int
duracion) {
super(titulo, genero, creador, duracion);
// TODO Auto-generated constructor stub
}
public Serie(String titulo, String creador, int numTemporadas) {
super(titulo, creador);
// TODO Auto-generated constructor stub
this.numTemporadas = numTemporadas;
}
public int getNumTemporadas() {
return numTemporadas;
}
public void setNumTemporadas(int numTemporadas) {
this.numTemporadas = numTemporadas;
}
@Override
public void marcarVisto() {
// TODO Auto-generated method stub
this.visto= true;
}
@Override
public boolean esVisto() {
// TODO Auto-generated method stub
return this.visto;
}
public int tiempoVisto() {
// TODO Auto-generated method stub
if (this.esVisto())
return this.getDuracion();
else
return 0;
}
}
CLASE INTERFCE VISUALIZABLE
package itq.edu.mx.netflix;
public interface Visualizable {
public void marcarVisto();
public boolean esVisto();
public int tiempoVisto();
}
CLASE PRINCIPAL NETFLIX
MODIFICADA PARA TRABAJAR ARRAYLIST, ITERADIRES,
CLAUSULA FOR CON LISTAS Y MANEJO DE EXCEPCIONES
package itq.edu.mx.netflix;
import java.util.ArrayList;
import java.util.Iterator;
public class Netflix {
public static void main(String[] args) {
// TODO Auto-generated method stub
// SE DEFINE EL ARRAYLIST DE PELICULAS DE NOMBRE MISPELICULAS Y SE AGREGAN LOS MISMOS
ArrayList<Pelicula> misPeliculas = new ArrayList<Pelicula>();
Pelicula pel = new Pelicula("Los tres mosqueteros","Drama","Autor", 20, 2000);
misPeliculas.add(pel); // SE AGREGA LA PRIMER PELÍCULA (OBJETO)
Pelicula pel1 = new Pelicula("La pantera Rosa", "Drama", "Autor2", 30,1960 );
misPeliculas.add(pel1);
Pelicula pel2 = new Pelicula("Toy Story", "Infantil","Autor3", 25, 2004 );
misPeliculas.add(pel2);
Pelicula pel3 = new Pelicula("Dracula", "Terror", "Autor4", 35, 2010 );
misPeliculas.add(pel3);
Pelicula pel4 = new Pelicula("Supermán", "Ciencia Ficción", "Autor5", 40, 2014 );
misPeliculas.add(pel4);
// LISTADO DE PELICULAS, CON LA LISTA COMPLETA DE ARRAYLIST
System.out.println("Lista de Peliculas");
System.out.println("No de Elementos: " + misPeliculas.size());
System.out.println("Títulos: " + misPeliculas);
ArrayList<Serie> misSeries = new ArrayList<Serie>();
Serie ser1 = new Serie("Grimm", "Drama", "Hermanos Grimm",120, 7 );
misSeries.add(ser1);
Serie ser2 = new Serie("La Ley y el Orden", "Policiaca", "Autorx",130, 8 );
misSeries.add(ser2);
Serie ser3 = new Serie("Dr. House", "Drama", "Autory",90, 4 );
misSeries.add(ser3);
Serie ser4 = new Serie("Super Girl", "Ciencia Ficción", "xyz",90, 2 );
misSeries.add(ser4);
Serie ser5 = new Serie("Flash", "Ciencia Ficción", "Z",120, 3 );
misSeries.add(ser5);
// LISTADO DE SERIES, CON LA LISTA COMPLETA DE ARRAYLIST
System.out.println("Lista de Series");
System.out.println("No de Elementos: " + misSeries.size());
System.out.println("Títulos: " + misSeries);
// SE MARCAN PELÍCULAS COMO VISTAS
Iterator<Pelicula> itrPeliculas = misPeliculas.iterator();
while (itrPeliculas.hasNext())
{
Pelicula peli = itrPeliculas.next();
if ((peli.getTitulo() == "Toy Story") || (peli.getTitulo() == "Dracula"))
peli.visto = true;
}
// SE MARCAN SERIES COMO VISTAS
Iterator<Serie> itrSeries = misSeries.iterator();
while (itrSeries.hasNext())
{
Serie serie = itrSeries.next();
if ((serie.getTitulo() == "Grimm") || (serie.getTitulo() ==
"Flash"))
serie.visto = true;
}
// TODAS LAS PELICULAS
System.out.println("\n\nTODAS LAS PELICULAS");
for (Pelicula pe : misPeliculas) {
System.out.print("TITULO: " + pe.getTitulo());
System.out.print("\t" +"GENERO: " + pe.getGenero());
System.out.print("\t" + "\t" +"CREADOR " + pe.getCreador());
System.out.print("\t" +"DURACION " + pe.getDuracion());
System.out.println("\t" + "AÑO: " + pe.getAnio());
}
// SOLO LAS PELICULAS VISTAS
int totdura = 0;
System.out.println("\n\nSOLO LAS PELICULAS VISTAS CON TOTAL DE
DURACION");
for (Pelicula pe : misPeliculas) {
if (pe.visto)
{
totdura += pe.getDuracion();
System.out.print("TITULO: " + pe.getTitulo());
System.out.print("\t"+"GENERO: " + pe.getGenero());
System.out.print("\t" + "\t" +"CREADOR " +
pe.getCreador());
System.out.print("\t" +"DURACION " + pe.getDuracion());
System.out.println("\t" + "AÑO: " + pe.getAnio());
}
}
System.out.println("\nTOTAL DE DURACION DE VISTO " + totdura);
try // SE INDICA EL INICIO PARA EL MANEJO DE EXEPCIONES, EN EL
SIGUIENTE BLOQUE
{
// PELICULA MAS RECIENTE
int reciente = 0;
String pelreciente = "";
for (Pelicula pe : misPeliculas) {
if (pe.getAnio() > reciente)
{
reciente = pe.getAnio();
pelreciente = pe.getTitulo();
}
}
System.out.println("\n\nLa Película más reciente es: " +
pelreciente + " del Año: " + reciente);
}
catch(Exception excepcion)
{
System.out.println("Ocurrió un error...");
excepcion.printStackTrace();
}
finally {
System.out.println("\n\nCon el manejo de Execpciones \nSe ejecuta
finally y Se termina el programa con o sin error");
}
}
}