14
« en: 19 de Octubre 2016, 20:19 »
Hola, Envío el ejercicio de herencia CU00687B del tutorial de programación orientada a objetos resuelto. Cree una nueva clase testHerencia3B, debido a que en la primera que había generado, primero cargaba todos los datos y al final mostraba todos los productos juntos, y aparecían bien todos los datos menos la fecha que siempre me mostraba la misma. En esta nueva clase la testHerencia3B cargo los datos y los voy mostrando al mismo tiempo, así la visualización es correcta, pero a mí me gustaba más la otra forma de primero ingresar los datos y luego mostrarlos.
Otra duda que tuve, y realicé diferentes pruebas y luego dejé todas las cargas de la misma manera es que no sabía que es mejor si generar el objeto vacío y luego agregar los datos con SET o cargarlos directamente como lo hice.
Desde ya agradezco a todos por vuestra colaboración.
Saludos
Clase Producto
/**
* class Producto
* 19/10/2016
* Ej. CU00687B
*/
import java.util.Calendar;
public class Producto
{
private Calendar fechaCaducidad;
private int numeroLote;
private Calendar fechaEnvasado;
private String paisOrigen;
public Producto(Calendar fechaCaducidad, int numeroLote, Calendar fechaEnvasado, String paisOrigen )
{
this.fechaCaducidad = fechaCaducidad;
this.numeroLote = numeroLote;
this.fechaEnvasado = fechaEnvasado;
this.paisOrigen = paisOrigen;
}
public Producto() {
paisOrigen ="";
numeroLote =0;
Calendar fechaCaducidad = Calendar.getInstance();
Calendar fechaEnvasado = Calendar.getInstance();
}
public Calendar getProductoFechaCaducidad() {return fechaCaducidad;}
public int getProductoNumeroLote() {return numeroLote;}
public Calendar getProductoFechaEnvasado() {return fechaEnvasado;}
public String getProductoPaisOrigen() {return paisOrigen;}
public void setProductoFechaCaducidad(Calendar fechaCaducidad) {
this.fechaCaducidad = fechaCaducidad; }
public void setProductoNumeroLote( int numeroLote) { this.numeroLote = numeroLote;}
public void setProductoFechaEnvasado(Calendar fechaEnvasado) { this.fechaEnvasado = fechaEnvasado;}
public void setProductoPaisOrigen(String paisOrigen) { this.paisOrigen = paisOrigen;}
public void mostrarDatosProducto(){
System.out.println("Producto Nº Lote: " + getProductoNumeroLote() + " Fecha de Caducidad: " + fechaCaducidad.getTime().toString() +
" País de Origen: " + getProductoPaisOrigen() + " Fecha de Envasado: " + fechaEnvasado.getTime().toString());}
}
Clase de Productos Frescos
/**
* Write a description of class ProductoFresco here.
* Ej. CU00687B
* @19/10/2016
*/
import java.util.Calendar;
public class ProductoFresco extends Producto
{
public ProductoFresco(Calendar fechaCaducidad, int numeroLote, Calendar fechaEnvasado, String paisDeOrigen)
{
super (fechaCaducidad, numeroLote, fechaEnvasado, paisDeOrigen);
}
public ProductoFresco() {super(); }
public void muestraInfoProdFresco() {
mostrarDatosProducto(); }
}
Clase de Productos Congelados
/**
* Write a description of class ProductoCongelado here.
* Modificado para el ejercicio CU00687B
* @Bettu
* @19/10/2016
*/
import java.util.Calendar;
public class ProductoCongelado extends Producto
{
private double temperaturaMant;
public ProductoCongelado(Calendar fechaCaducidad, int numeroLote,Calendar fechaEnvasado, String paisOrigen, double temperaturaMant)
{
super (fechaCaducidad,numeroLote, fechaEnvasado, paisOrigen);
this.temperaturaMant = temperaturaMant;
}
public ProductoCongelado() {
super();
temperaturaMant = 0;}
public double getTemperaturaMant() {return temperaturaMant;}
public void setTemperaturaCont (double temperaturaMant) {
this.temperaturaMant = temperaturaMant; }
public void muestraInfoProdCongelado() {
System.out.println("Su temperatura es: "+getTemperaturaMant()+" º");
}
}
Clase Productos Refrigerados
/**
* Write a description of class ProductoRefrigerado here.
* Ej. CU00687B
* @Bettu
* @19/10/2016
*/
import java.util.Calendar;
public class ProductoRefrigerado extends Producto
{
private String codigoOrgSupAlim;
private double temperaturaRecomendada;
public ProductoRefrigerado(Calendar fechaCaducidad, int numeroLote, Calendar fechaEnvasado, String paisOrigen, String codigoOrgSupAlim, double temperaturaRecomendada)
{
super(fechaCaducidad, numeroLote, fechaEnvasado, paisOrigen);
this.codigoOrgSupAlim = codigoOrgSupAlim;
this.temperaturaRecomendada = temperaturaRecomendada;
}
public String getCodigoOrgSupAlim() {return codigoOrgSupAlim;}
public double getTemperaturaRecomendada() {return temperaturaRecomendada;}
public void setCodigoOrgSupAlim( String codigoOrgSupAlim) {
this.codigoOrgSupAlim = codigoOrgSupAlim; }
public void setTemperaturaRecomendada (double temperaturaRecomendada) {
this.temperaturaRecomendada = temperaturaRecomendada; }
public void muestraInfoProdRefrigerado() {
System.out.println("Código del organismo de supervisión alimentaria: "+getCodigoOrgSupAlim() + " Temperatura Recomendada: "+ getTemperaturaRecomendada()+"°"); }
}
Clase Productos Congelados por aire
/**
* Write a description of class ProductoCongeladoAire here.
* Ej. CU00687B
* @Bettu
* @19/10/2/16
*/
import java.util.Calendar;
public class ProductoCongeladoAire extends ProductoCongelado
{
private float porcNitrogeno;
private float porcOxigeno;
private float porcCO2;
private float porcVaporAgua;
/**
* Constructor for objects of class ProductoCongeladoAire
*/
public ProductoCongeladoAire()
{
super();
porcNitrogeno = 0;
porcOxigeno = 0;
porcCO2 = 0;
porcVaporAgua = 0;
}
public ProductoCongeladoAire(Calendar fechaCaducidad, int numeroLote,Calendar fechaEnvasado, String paisOrigen, double temperaturaMant,
float porcNitrogeno, float porcOxigeno, float porcCO2, float porcVaporAgua)
{
super(fechaCaducidad, numeroLote, fechaEnvasado, paisOrigen, temperaturaMant);
this.porcNitrogeno = porcNitrogeno;
this.porcOxigeno = porcOxigeno;
this.porcCO2 = porcCO2;
this.porcVaporAgua = porcVaporAgua;
}
public float getPorcNitrogeno() {return porcNitrogeno ;}
public float getPorcOxigeno() {return porcOxigeno ;}
public float getPorcCO2() {return porcCO2 ;}
public float getPorcVaporAgua() {return porcVaporAgua ;}
public void setPorcNitrogeno(float porcNitrogeno) {
this.porcNitrogeno = porcNitrogeno;}
public void setPorcOxigeno (float porcOxigeno) {
this.porcOxigeno = porcOxigeno; }
public void setPorcCO2 (float porcCO2) {
this.porcCO2 = porcCO2;}
public void setPorcVaporAgua (float porcVaporAgua) {
this.porcVaporAgua = porcVaporAgua;}
public void muestraComposicionAire() {
System.out.println("La composición del aire es: Nitrogeno: "+ (porcNitrogeno*100)+" % Oxigeno: "+
(porcOxigeno*100)+ "% Dioxido de Carbono: " + (porcCO2*100) + "% Vapor Agua: " + (porcVaporAgua * 100) +"%");}
}
Clase Productos Congelados por Agua
/**
* Write a description of class ProductoCongeladoAgua here.
* Ej. CU00687B
* @Bettu
* @19/10/2016
*/
import java.util.Calendar;
public class ProductoCongeladoAgua extends ProductoCongelado
{
// instance variables - replace the example below with your own
private float salinidadAgua;
public ProductoCongeladoAgua()
{
super();
salinidadAgua = 0;
}
public ProductoCongeladoAgua(Calendar fechaCaducidad, int numeroLote,Calendar fechaEnvasado, String paisOrigen, double temperaturaMant, float salinidadAgua)
{
super (fechaCaducidad,numeroLote, fechaEnvasado, paisOrigen, temperaturaMant);
this.salinidadAgua = salinidadAgua;
}
public float getSalinidadAgua(){return salinidadAgua;}
public void setSalinidadAgua(float salinidadAgua) {
this.salinidadAgua = salinidadAgua; }
public void mostrarProductoCongeladoAgua() {
System.out.println("Salinidad del agua: " + getSalinidadAgua()+" gramos de sal por litro de agua");
}
}
Clase Productos Congelados por Nitrógeno
/**
* Write a description of class ProductoCongeladoNitrogeno here.
* Ej. CU00687B
* @Bettu
* @19/10/2016
*/
import java.util.Calendar;
public class ProductoCongeladoNitrogeno extends ProductoCongelado
{
private String metodoCongelacion;
private double tiempoExposicion;
public ProductoCongeladoNitrogeno()
{
super();
metodoCongelacion = "";
tiempoExposicion = 0;
}
public ProductoCongeladoNitrogeno(Calendar fechaCaducidad, int numeroLote,Calendar fechaEnvasado, String paisOrigen, double temperaturaMant, String metodoCongelacion,double tiempoExposicion )
{
super(fechaCaducidad,numeroLote, fechaEnvasado, paisOrigen, temperaturaMant);
this.metodoCongelacion = metodoCongelacion;
this.tiempoExposicion = tiempoExposicion;
}
public String getMetodoCongelacion(){return metodoCongelacion;}
public void setMetodoCongelacion( String metodoCongelacion) { this.metodoCongelacion = metodoCongelacion;}
public double getTiempoExposicion() {return tiempoExposicion;}
public void setTiempoExposicion(double tiempoExposicion) {this.tiempoExposicion = tiempoExposicion;}
public void mostrarProductoCongeladoNitrogeno() {
System.out.println("Método de Congelación: " + getMetodoCongelacion() + " Tiempo de exposición al nitrógeno: " +
getTiempoExposicion() + " en segundos");
}
}
Clase Principal
/**
* testHerencia3B Uso de superclases intermedias
* Fue realizada esta segunda prueba, debido a que si muestro al final como en el primer ejemplo que he realizado
* en testHerencia3, no me aparecen las fechas correctas
* Ejercicio CU00687B
* @19/10/2016
*/
import java.util.Calendar;
public class testHerencia3B
{
public static void main(String [] Args) {
System.out.println("** LISTADO DE PRODUCTOS **");
System.out.println("PRODUCTOS FRESCOS");
Calendar fechaCad = Calendar.getInstance();
fechaCad.set(2020,9,3);
Calendar fechaEnv = Calendar.getInstance();
fechaEnv.set(2016,3,24);
ProductoFresco productoFresco1 = new ProductoFresco (fechaCad,101 , fechaEnv,"Chile");
productoFresco1.muestraInfoProdFresco();
fechaCad.set(2022,0,1);
fechaEnv.set(2015,7,6);
ProductoFresco productoFresco2 = new ProductoFresco (fechaCad, 102, fechaEnv,"Bolivia");
productoFresco2.muestraInfoProdFresco();
System.out.println("\n");
System.out.println("PRODUCTOS REFRIGERADOS");
fechaCad.set(2020,9,3);
fechaEnv.set(2014,0,1);
ProductoRefrigerado productoRefrigerado1 = new ProductoRefrigerado (fechaCad,201 , fechaEnv,"Argentina","CO21-21",21);productoRefrigerado1.mostrarDatosProducto();
productoRefrigerado1.muestraInfoProdRefrigerado();
fechaCad.set(2021,9,3);
fechaEnv.set(2015,0,2);
ProductoRefrigerado productoRefrigerado2 = new ProductoRefrigerado (fechaCad,202 , fechaEnv,"Uruguay","CO22-22",22);
productoRefrigerado2.mostrarDatosProducto();
productoRefrigerado2.muestraInfoProdRefrigerado();
fechaCad.set(2022,9,3);
fechaEnv.set(2016,0,3);
ProductoRefrigerado productoRefrigerado3 = new ProductoRefrigerado (fechaCad,203 , fechaEnv,"Paraguay","CO23-23",23);
productoRefrigerado3.mostrarDatosProducto();
productoRefrigerado3.muestraInfoProdRefrigerado();
System.out.println("\n");
System.out.println("PRODUCTOS CONGELADOS");
System.out.println("== AGUA ==");
fechaCad.set(2023,9,21);
fechaEnv.set(2011,0,11);
ProductoCongeladoAgua productoCongeladoAgua1 = new ProductoCongeladoAgua (fechaCad,301 , fechaEnv,"Mexico",17,15);
productoCongeladoAgua1.mostrarDatosProducto();
productoCongeladoAgua1.muestraInfoProdCongelado();
productoCongeladoAgua1.mostrarProductoCongeladoAgua();
fechaCad.set(2024,10,3);
fechaEnv.set(2012,0,12);
ProductoCongeladoAgua productoCongeladoAgua2 = new ProductoCongeladoAgua (fechaCad,301 , fechaEnv,"Colombia",17,15);
productoCongeladoAgua2.mostrarDatosProducto();
productoCongeladoAgua2.muestraInfoProdCongelado();
productoCongeladoAgua2.mostrarProductoCongeladoAgua();
System.out.println("== AIRE ==");
fechaCad.set(2025,1,25);
fechaEnv.set(2007,0,7);
ProductoCongeladoAire productoCongeladoAire1 = new ProductoCongeladoAire (fechaCad, 401, fechaEnv,"Venezuela",11,0.78F,0.21F,0.0003F,0.0097F);
productoCongeladoAire1.mostrarDatosProducto();
productoCongeladoAire1.muestraInfoProdCongelado();
productoCongeladoAire1.muestraComposicionAire();
fechaCad.set(2026,2,26);
fechaEnv.set(2010,0,10);
ProductoCongeladoAire productoCongeladoAire2 = new ProductoCongeladoAire (fechaCad, 402, fechaEnv,"Perú",12,0.77F,0.22F,0.0003F,0.0097F);
productoCongeladoAire2.mostrarDatosProducto();
productoCongeladoAire2.muestraInfoProdCongelado();
productoCongeladoAire2.muestraComposicionAire();
System.out.println("== NITROGENO ==");
fechaCad.set(2030,10,9);
fechaEnv.set(2006,0,6);
ProductoCongeladoNitrogeno productoCongeladoNitrogeno1 = new ProductoCongeladoNitrogeno (fechaCad,501 , fechaEnv,"México",15,"Nitrogeno Líquido",10);
productoCongeladoNitrogeno1.mostrarDatosProducto();
productoCongeladoNitrogeno1.muestraInfoProdCongelado();
productoCongeladoNitrogeno1.mostrarProductoCongeladoNitrogeno();
System.out.println("** FIN LISTADO DE PRODUCTOS **");
}
}