Clase Producto
package Numero88;
import java.util.Calendar;
import java.text.SimpleDateFormat;
import java.util.Locale;
public class Producto
{
private static Locale currentLocale = new Locale("es","ES");
private String lote;
private Calendar fechaEnvasado;
private Calendar fechaCaducidad;
private String paisOrigen;
public Producto(){
lote="";
fechaCaducidad=null;
fechaEnvasado=null;
paisOrigen="";
}
public Producto(String lote,Calendar fechaEnvasado,Calendar fechaCaducidad,String paisOrigen){
this.lote=lote;
this.fechaEnvasado=Calendar.getInstance(currentLocale);
this.fechaEnvasado.setTime(fechaEnvasado.getTime());
this.fechaCaducidad=Calendar.getInstance(currentLocale);
this.fechaCaducidad.setTime(fechaCaducidad.getTime());
this.paisOrigen=paisOrigen;
}
public void setLote(String lote){
this.lote=lote;
}
public void setFechaEnvasado(Calendar fechaEnvasado){
this.fechaEnvasado=fechaEnvasado;
}
public void setFechaCaducidad(Calendar fechaCaducidad){
this.fechaCaducidad=fechaCaducidad;
}
public void setPaisOrigen(String paisOrigen){
this.paisOrigen=paisOrigen;
}
public String getLote(){
return lote;
}
public Calendar getFechaEnvasado(){
return fechaEnvasado;
}
public Calendar getFechaCaducidad(){
return fechaCaducidad;
}
public String getPaisOrigen(){
return paisOrigen;
}
public void mostrarProducto(){
SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy",currentLocale);
System.out.println("Lote : "+lote);
System.out.println("Fecha de envasado : "+formatoFecha.format(fechaEnvasado.getTime()));
System.out.println("Fecha de caducidad : "+formatoFecha.format(fechaCaducidad.getTime()));
System.out.println("País de origen : "+paisOrigen);
}
}
Clase ProductosFrescos
package Numero88;
import java.util.Calendar;
import java.text.SimpleDateFormat;
/**
* Write a description of class ProductosFrescos here.
*
* @author Campillo
* @version 22/08/2015
*/
public class ProductosFrescos extends Producto
{
/**
* Constructor for objects of class ProductosFrescos
*/
public ProductosFrescos()
{
super();
}
public ProductosFrescos(String lote,Calendar fechaEnvasado,Calendar fechaCaducidad,String paisOrigen)
{
super (lote, fechaEnvasado, fechaCaducidad, paisOrigen);
}
public void infoProductosFrescos(){
super.mostrarProducto();
}
}
Clase ProductosNoFrescos
package Numero88;
import java.util.Calendar;
/**
* Write a description of class ProductosNoFrescos here.
*
* @author Campillo
* @version 28/08/2015
*/
public class ProductosNoFrescos extends Producto
{
private int temperaturaRecomendada;
/**
* Constructor for objects of class ProductosNoFrescos
*/
public ProductosNoFrescos()
{
super();
temperaturaRecomendada = 0;
}
public ProductosNoFrescos(String lote,Calendar fechaEnvasado,Calendar fechaCaducidad,String paisOrigen, int temperaturaRecomendada)
{
super(lote, fechaEnvasado, fechaCaducidad, paisOrigen);
this.temperaturaRecomendada = temperaturaRecomendada;
}
public void setTemperaturaRecomendada(int temperaturaRecomendada){
this.temperaturaRecomendada = temperaturaRecomendada;
}
public int getTemperaturaRecomendada(){ return temperaturaRecomendada; }
public void infoProductosNoFrescos(){
super.mostrarProducto();
System.out.println("La temperatura recomendada: " + getTemperaturaRecomendada() + "º");
}
}
Clase ProductosRefrigerados
package Numero88;
import java.util.Calendar;
/**
* Write a description of class ProductosRefrigerados here.
*
* @author (your name)
* @version (a version number or a date)
*/
public class ProductosRefrigerados extends ProductosNoFrescos
{
private String codigoSupervisionAlimentaria;
/**
* Constructor for objects of class ProductosRefrigerados
*/
public ProductosRefrigerados()
{
super();
codigoSupervisionAlimentaria = "";
}
public ProductosRefrigerados(String lote,Calendar fechaEnvasado,Calendar fechaCaducidad,String paisOrigen, int temperaturaRecomendada, String codigoSupervisionAlimentaria){
super(lote, fechaEnvasado, fechaCaducidad, paisOrigen, temperaturaRecomendada);
this.codigoSupervisionAlimentaria = codigoSupervisionAlimentaria;
}
public void setCodigoSupervisionAlimentaria(String codigoSupervisionAlimentaria){
this.codigoSupervisionAlimentaria = codigoSupervisionAlimentaria;
}
public String getCodigoSupervisionAlimentaria(){ return codigoSupervisionAlimentaria; }
public void infoProductosRefrigerados(){
super.infoProductosNoFrescos();
System.out.println("Codigo del organismo de supervision alimentaria: " + getCodigoSupervisionAlimentaria());
}
}
Clase ProductosCongelados
package Numero88;
import java.util.Calendar;
/**
* Write a description of class ProductosCongelados here.
*
* @author Campillo
* @version 28/08/2015
*/
public class ProductosCongelados extends ProductosNoFrescos
{
/**
* Constructor for objects of class ProductosCongelados
*/
public ProductosCongelados()
{
super();
}
public ProductosCongelados(String lote,Calendar fechaEnvasado,Calendar fechaCaducidad,String paisOrigen, int temperaturaRecomendada)
{
super(lote, fechaEnvasado, fechaCaducidad, paisOrigen, temperaturaRecomendada);
}
}
Clase PCongeladosAire
package Numero88;
import java.util.Calendar;
/**
* Write a description of class PCongeladosAire here.
*
* @author Campillo
* @version 28/08/2015
*/
public class PCongeladosAire extends ProductosCongelados
{
private int dioxidoDeCarbono;
private int nitrogeno;
private int oxigeno;
private int vaporDeAgua;
/**
* Constructor for objects of class PCongeladosAire
*/
public PCongeladosAire(){
super();
dioxidoDeCarbono = 0;
nitrogeno = 0;
oxigeno = 0;
vaporDeAgua = 0;
}
public PCongeladosAire(String lote,Calendar fechaEnvasado,Calendar fechaCaducidad,String paisOrigen, int temperaturaRecomendada, int dioxidodeCarbono, int nitrogeno, int oxigeno, int vaporDeAgua)
{
super(lote, fechaEnvasado, fechaCaducidad, paisOrigen, temperaturaRecomendada);
this.dioxidoDeCarbono = dioxidoDeCarbono;
this.nitrogeno = nitrogeno;
this.oxigeno = oxigeno;
this.vaporDeAgua = vaporDeAgua;
}
public void setComposicionDelAire(int dioxidoDeCarbono, int nitrogeno, int oxigeno, int vaporDeAgua){
this.dioxidoDeCarbono = dioxidoDeCarbono;
this.nitrogeno = nitrogeno;
this.oxigeno = oxigeno;
this.vaporDeAgua = vaporDeAgua;
}
public int getDioxidoDeCarbono(){ return dioxidoDeCarbono; }
public int getNitrogeno(){ return nitrogeno; }
public int getOxigeno(){ return oxigeno; }
public int getVaporDeAgua(){ return vaporDeAgua; }
public void infoProductosCongeladosPorAire(){
super.infoProductosNoFrescos();
System.out.println("La composicion del aire es: " + getDioxidoDeCarbono() + "% de dioxido de carbono, " + getNitrogeno() + "% de nitrogeno " + getVaporDeAgua() + "% de vapor de agua");
}
}
PCongeladosAgua
package Numero88;
import java.util.Calendar;
/**
* Write a description of class PCongeladosAgua here.
*
* @author Campillo
* @version 28/08/2015
*/
public class PCongeladosAgua extends ProductosCongelados
{
private int salinidad;
/**
* Constructor for objects of class PCongeladosAgua
*/
public PCongeladosAgua()
{
super();
salinidad = 0;
}
public PCongeladosAgua(String lote,Calendar fechaEnvasado,Calendar fechaCaducidad,String paisOrigen, int temperaturaRecomendada, int salinidad)
{
super(lote, fechaEnvasado, fechaCaducidad, paisOrigen, temperaturaRecomendada);
this.salinidad = salinidad;
}
public void setSalinidad(int salinidad){
this.salinidad = salinidad;
}
public int getSalinidad(){ return salinidad; }
public void infoProductosCongeladosPorAgua(){
super.infoProductosNoFrescos();
System.out.println("La salinidad del agua es: " + getSalinidad() + "g/l");
}
}
PCongeladosNitrogeno
package Numero88;
import java.util.Calendar;
/**
* Write a description of class PCOngeladosNitrogeno here.
*
* @author Campillo
* @version 28/08/2015
*/
public class PCongeladosNitrogeno extends ProductosCongelados
{
private String metodoCongelacion;
private int tiempoExposicion;
/**
* Constructor for objects of class PCOngeladosNitrogeno
*/
public PCongeladosNitrogeno()
{
super();
metodoCongelacion = "";
tiempoExposicion = 0;
}
public PCongeladosNitrogeno(String lote,Calendar fechaEnvasado,Calendar fechaCaducidad,String paisOrigen, int temperaturaRecomendada, String metodoCongelacion, int tiempoExposicion)
{
super(lote, fechaEnvasado, fechaCaducidad, paisOrigen, temperaturaRecomendada);
this.metodoCongelacion = metodoCongelacion;
this.tiempoExposicion = tiempoExposicion;
}
public void setMetodoCongelacion(String metodoCongelacion){
this.metodoCongelacion = metodoCongelacion;
}
public void setTiempoExposicion(int tiempoExposicion){
this.tiempoExposicion = tiempoExposicion;
}
public String getMetodoCongelacion(){ return metodoCongelacion; }
public int getTiempoExposicion(){ return tiempoExposicion; }
public void infoProductosCongeladosPorNitrogeno(){
super.infoProductosNoFrescos();
System.out.println("El método de congelacion fue: " + getMetodoCongelacion());
System.out.println("El tiempo de exposicion fue: " + getTiempoExposicion() + "s");
}
}
Clase EnvioProductos
package Numero88;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
/**
* Write a description of class EnvioProductos here.
*
* @author Campillo
* @version 04/09/2015
*/
public class EnvioProductos
{
private List<Producto> lista1;
public EnvioProductos(){
lista1 = new ArrayList<Producto>();
}
public void setLista(Producto valor_producto){
lista1.add(lista1.size(), valor_producto);
}
public int numeroElementos(){
return lista1.size();
}
public void obtenerProducto(int posicion){
System.out.println(lista1.get(posicion));
}
public void datosEnvioProductos() {
Iterator <Producto> it = lista1.iterator();
while(it.hasNext()){
it.next().mostrarProducto();
System.out.println("");
}
}
}
Clase TestHerencia4
package Numero88;
import java.util.Calendar;
import java.util.Iterator;
/**
* Write a description of class TestHerencia4 here.
*
* @author Campillo
* @version 28/08/2015
*/
public class TestHerencia4
{
public static void main(String [] Args){
Calendar fechaEnvasado = Calendar.getInstance();
Calendar fechaCaducidad = Calendar.getInstance();
fechaEnvasado.set(2012,2,12);
fechaCaducidad.set(2014,8,5);
ProductosFrescos productoFresco1 = new ProductosFrescos("74KLG", fechaEnvasado, fechaCaducidad,"Alemania");
fechaEnvasado.set(2013,4,30);
fechaCaducidad.set(2015,11,20);
ProductosFrescos productoFresco2 = new ProductosFrescos("26RLV", fechaEnvasado, fechaCaducidad,"Francia");
fechaEnvasado.set(2014,5,23);
fechaCaducidad.set(2015,10,2);
ProductosRefrigerados productoRefrigerado1 = new ProductosRefrigerados("15DFS", fechaEnvasado, fechaCaducidad, "Japon", 0, "1245DDGT");
fechaEnvasado.set(2014,5,29);
fechaCaducidad.set(2015,5,8);
ProductosRefrigerados productoRefrigerado2 = new ProductosRefrigerados("35GDR",fechaEnvasado, fechaCaducidad, "China", 5, "5482GEDG");
fechaEnvasado.set(2013,4,25);
fechaCaducidad.set(2014,6,12);
ProductosRefrigerados productoRefrigerado3 = new ProductosRefrigerados("35DGB", fechaEnvasado, fechaCaducidad, "EE.UU.", 12, "4596FREN");
fechaEnvasado.set(2012,5,30);
fechaCaducidad.set(2017,4,27);
PCongeladosAire congeladosAire1 = new PCongeladosAire("65FGR", fechaEnvasado, fechaCaducidad, "Argentina", -5, 2, 60, 18, 23);
fechaEnvasado.set(2013,9,16);
fechaCaducidad.set(2016,8,5);
PCongeladosAire congeladosAire2 = new PCongeladosAire("24SFE", fechaEnvasado, fechaCaducidad, "Brasil", -2, 5, 50, 20, 15);
fechaEnvasado.set(2000,1,1);
fechaCaducidad.set(2010,1,1);
PCongeladosAgua congeladosAgua1 = new PCongeladosAgua("37FST", fechaEnvasado, fechaCaducidad, "Mexico", -7, 12);
fechaEnvasado.set(2001,11,5);
fechaCaducidad.set(2011,10,23);
PCongeladosAgua congeladosAgua2 = new PCongeladosAgua("37SDK", fechaEnvasado, fechaCaducidad, "Italia", -7, 12);
fechaEnvasado.set(2004,2,5);
fechaCaducidad.set(2014,5,3);
PCongeladosNitrogeno congeladosNitrogeno = new PCongeladosNitrogeno("36HRF", fechaEnvasado, fechaCaducidad, "España", -5, "Inmesion", 12);
EnvioProductos envioProductos = new EnvioProductos();
Producto [] lista1 = {productoFresco1, productoFresco2, productoRefrigerado1, productoRefrigerado2, productoRefrigerado3, congeladosAire1, congeladosAire2, congeladosAgua1, congeladosAgua2, congeladosNitrogeno};
envioProductos.numeroElementos();
for(Producto tmp:lista1){
envioProductos.setLista(tmp);
}
System.out.println("Esta lista la componen " + envioProductos.numeroElementos() + " productos");
envioProductos.datosEnvioProductos();
}
}