Hola, aquí está mi propuesta para este ejercicio.
He creado siete clases mas la clase del test. En el main se crea un ArrayList donde voy añadiendo los productos que doy de alta, para luego imprimir su información ayudandome de un for.
clase Producto:
public class Producto
{
private String fechaCaducidad;
private int numeroLote;
private String paisOrigen;
private String fechaEnvasado;
public Producto(String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado){
this.fechaCaducidad=fechaCaducidad;
this.numeroLote=numeroLote;
this.paisOrigen=paisOrigen;
this.fechaEnvasado=fechaEnvasado;
}
public String getFechaCaducidad(){
return fechaCaducidad;
}
public int getNumeroLote(){
return numeroLote;
}
public void setFechaCducidad(String fecha){
fechaCaducidad=fecha;
}
public void setNumeroLote(int numero){
numeroLote=numero;
}
public String getPaisOrigen(){
return paisOrigen;
}
public String getFechaEnvasado(){
return fechaEnvasado;
}
public void setPaisOrigen(String paisOrigen){
this.paisOrigen=paisOrigen;
}
public void setFechaEnvasado(String fechaEnvasado){
this.fechaEnvasado=fechaEnvasado;
}
@Override
public String toString(){
return String.format("Fecha de Caducidad: " + fechaCaducidad + "\n" +
"Número de lote: " + numeroLote + "\n" +
"Pais de origen: " + this.paisOrigen +"\n" +
"Fecha de envasado: " + this.fechaEnvasado +"\n");
}
}
Clase Fresco
public class Fresco extends Producto
{
//esta clase no tiene atributos propios, los tiene la superclase
public Fresco(String fechaCaducidad, int numeroLote,String paisOrigen, String fechaEnvasado){
super(fechaCaducidad,numeroLote,paisOrigen,fechaEnvasado);
}
@Override
public String toString(){
return String.format("Información del producto fresco: \n" + super. toString());
}
}
Clase congelado:
public class Congelado extends Producto
{
//información generica
private double temperaturaMantenimiento;
public Congelado(String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento){
super(fechaCaducidad,numeroLote,paisOrigen,fechaEnvasado);
this.temperaturaMantenimiento=temperaturaMantenimiento;
}
public double getTemperaturaMantenimiento(){
return temperaturaMantenimiento;
}
public void setTemperaturaMantenimiento(double temperaturaMantenimiento){
this.temperaturaMantenimiento=temperaturaMantenimiento;
}
@Override
public String toString(){
return String.format(super. toString() +
"Temperatura de mantenimiento: " + this.temperaturaMantenimiento + "ºC" + "\n");
}
}
clase refrigerado:
public class Refrigerado extends Congelado
{
//información especifica
private String codigo;
public Refrigerado(String fechaCaducidad, int numeroLote,String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String codigo){
super(fechaCaducidad,numeroLote,paisOrigen,fechaEnvasado,temperaturaMantenimiento);
this.codigo=codigo;
}
public String getCodigo(){
return codigo;
}
public void setCodigo(String codigo){
this.codigo=codigo;
}
@Override
public String toString(){
return String.format("Información del producto refrigerado: \n" +
super. toString() +
"Codigo OSA: " + this.codigo +"\n" );
}
}
Clase congelado por aire
public class CongeladoAire extends Congelado
{
private String composiciónAire;
public CongeladoAire(String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String composiciónAire){
super(fechaCaducidad, numeroLote, paisOrigen, fechaEnvasado,temperaturaMantenimiento);
this.composiciónAire=composiciónAire;
}
public void setComposiciónAire(String composiciónAire){
this.composiciónAire=composiciónAire;
}
public String getComposiciónAire(){
return this.composiciónAire;
}
@Override
public String toString(){
return String.format("Información del producto congelado por aire: \n"+
super.toString() +
"Composición de aire: " + this.composiciónAire + "\n");
}
}
clase congelado por agua
public class CongeladoAgua extends Congelado
{
private String salinidadAgua;
public CongeladoAgua(String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String salinidadAgua){
super(fechaCaducidad, numeroLote, paisOrigen, fechaEnvasado,temperaturaMantenimiento);
this.salinidadAgua=salinidadAgua;
}
public void setSalinidadAgua(String salinidadAgua){
this.salinidadAgua=salinidadAgua;
}
public String getSalinidadAgua(){
return this.salinidadAgua;
}
@Override
public String toString(){
return String.format("Información del producto congelado por agua: \n"+
super. toString() +
"Salinidad del agua: " + this.salinidadAgua + "\n");
}
}
clase congelado por nitrogeno
public class CongeladoNitrogeno extends Congelado
{
private String metodoCongelacion;
private int tiempoExposicion;
public CongeladoNitrogeno(String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String metodoCongelacion,int tiempoExposicion){
super(fechaCaducidad, numeroLote, paisOrigen, fechaEnvasado,temperaturaMantenimiento);
this.metodoCongelacion=metodoCongelacion;
this.tiempoExposicion=tiempoExposicion;
}
@Override
public String toString(){
return String.format("Información del producto congelado por nitrogeno: \n"+
super. toString() +
"Metodo de congelación: " + this.metodoCongelacion + "\n" +
"Tiempo de exposición al nitrogeno: " + this.tiempoExposicion + " minutos");
}
}
clase del main
import java.util.ArrayList;
public class TestHerencia3
{
public static void main(String[] args){
//se crea una lista para contener todos los productos
ArrayList<Producto> listaProductos=new ArrayList<Producto>();
//se crean los productos
//parametros del fresco
//String fechaCaducidad, int numeroLote,String paisOrigen, String fechaEnvasado
//Crear 2
Fresco productoFresco1 = new Fresco("12/2/16", 565, "España", "1/1/16");
listaProductos.add(productoFresco1);
Fresco productoFresco2 = new Fresco("12/5/18", 456, "España", "1/5/15");
listaProductos.add(productoFresco2);
//parametros del refrigerado:
//String fechaCaducidad, int numeroLote,String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String codigo
//crear 3
Refrigerado productoRefrigerado1 = new Refrigerado("12/8/18", 2300,"España", "13/5/14", 4, "B35-267");
listaProductos.add(productoRefrigerado1);
Refrigerado productoRefrigerado2 = new Refrigerado("12/8/17", 2385,"España", "7/3/15", 5, "Z85-29");
listaProductos.add(productoRefrigerado2);
Refrigerado productoRefrigerado3 = new Refrigerado("1/3/16", 123,"España", "4/1/15", -1, "T3-45");
listaProductos.add(productoRefrigerado3);
//parametros del congelado por aire
//String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String composiciónAire
//composición del aire: %nitrogeno,%oxigeno,%dioxido de carbono,%vapor de agua
//crear 2
Congelado congeladoAire1 = new CongeladoAire("12/8/18", 2300,"España", "13/5/14", -25.0,"Nitrogeno:78%%,Oxigeno:21%%,Dioxido de carbono:0,03%%,Vapor de agua:variable");
listaProductos.add(congeladoAire1);
Congelado congeladoAire2 = new CongeladoAire("12/8/16", 4524,"España", "10/11/14", -25.0,"Nitrogeno:78%%,Oxigeno:21%%,Dioxido de carbono:0,03%%,Vapor de agua:variable");
listaProductos.add(congeladoAire2);
//parametros congelado por agua
//String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String salinidadAgua
//salinidad del agua: gr/litro
//crear 2
Congelado congeladoAgua1 = new CongeladoAgua("1/3/15", 56,"España", "1/3/16", -20.0,"<0,5g/l");
listaProductos.add(congeladoAgua1);
Congelado congeladoAgua2 = new CongeladoAgua("12/2/15", 89,"España", "12/2/16", -20.0,"<0,5g/l");
listaProductos.add(congeladoAgua2);
//parametros congelado por nitrogeno
//String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String metodoCongelacion,int tiempoExposicion
//crear 1
Congelado congeladoNitrogeno = new CongeladoNitrogeno("1/3/15", 32,"España", "1/3/16", -30.0,"Tunel de refrigeración",5);
listaProductos.add(congeladoNitrogeno);
// se llama a los metodos correspondientes para obtener la información de cada producto
// prueba para imprimir información de cada producto
/**
System.out.println("Información del producto fresco \n" + productoFresco1.toString());
System.out.println("Información del producto refrigerado \n" + productoRefrigerado1.toString());
System.out.println("Información del producto congelado por aire \n" + congeladoAire1.toString());
System.out.println("Información del producto congelado por agua \n" + congeladoAgua1.toString());
System.out.println("Información del producto congelado por nitrogeno \n" + congeladoNitrogeno.toString());
*/
//Se imprime la información de todos los productos creados
for(Producto p : listaProductos){
System.out.println(p);
}
}
}
Un saludo y gracias por la ayuda.