Buenos días compañeros. He realizado el ejercicio del curso "Aprendiendo a Programar desde cero /Ejemplo de Herencia de Java (CU00687B) del tutorial de programación en pdf de esta web.
EJERCICIO
Se plantea desarrollar un programa Java que permita la gestión de una empresa agroalimentaria que trabaja con tres tipos de productos: productos frescos, productos refrigerados y productos congelados.
Todos los productos llevan esta información común: fecha de caducidad y número de lote. A su vez, cada tipo de producto lleva alguna información específica. Los productos frescos deben llevar la fecha de envasado y el país de origen. Los productos refrigerados deben llevar el código del organismo de supervisión alimentaria, la fecha de envasado, la temperatura de mantenimiento recomendada y el país de origen. Los productos congelados deben llevar la fecha de envasado, el país de origen y la temperatura de mantenimiento recomendada.
Hay tres tipos de productos congelados: congelados por aire, congelados por agua y congelados por nitrógeno. Los productos congelados por aire deben llevar la información de la composición del aire con que fue congelado (% de nitrógeno, % de oxígeno, % de dióxido de carbono y % de vapor de agua). Los productos congelados por agua deben llevar la información de la salinidad del agua con que se realizó la congelación en gramos de sal por litro de agua. Los productos congelados por nitrógeno deben llevar la
información del método de congelación empleado y del tiempo de exposición al nitrógeno expresada en segundos.
Archivo EmpresaAgroAlimentaria1
package AprenderProgramar;
public class EmpresaAgroAlimentaria1 {
//################ ATRIBUTOS ############################
private String nombre;
private String fechaCaducidad;
private String numeroLote;
//############### CONSTRUCTOR ###########################
public EmpresaAgroAlimentaria1(String nombre, String fechaCaducidad, String numeroLote) {
this.nombre = nombre;
this.fechaCaducidad = fechaCaducidad;
this.numeroLote = numeroLote;
}
//############ MÉTODO SETTER y GETTER ###################
public void setNombre ( String nombre) {
this.nombre = nombre;
}
public String getNombre() {return nombre;}
public void setFechaCaducidad(String fechaCaducidad) {
this.fechaCaducidad = fechaCaducidad;
}
public String getFechaCaducidad() {return fechaCaducidad;}
public void setNumeroLote(String numeroLote) {
this.numeroLote = numeroLote;
}
public String getNumeroLote() {return numeroLote;}
}
Archivo ProductoFresco
package AprenderProgramar;
public class ProductoFresco1 extends EmpresaAgroAlimentaria1 {
//################ ATRIBUTOS ############################
private String fechaEnvasado;
private String paisOrigen;
//############### CONSTRUCTOR ###########################
public ProductoFresco1(String nombre, String fechaCaducidad, String numeroLote, String fechaEnvasado, String paisOrigen) {
super(nombre, fechaCaducidad, numeroLote);
this.fechaEnvasado = fechaEnvasado;
this.paisOrigen = paisOrigen;
}
//################ MÉTODOS SETTER Y GETTER ###################
public void setFechaEnvasado(String fechaEnvasado) {
this.fechaEnvasado = fechaEnvasado;
}
public String getFechaEnvasado() {return fechaEnvasado;}
public void setPaisOrigen(String paisOrigen) {
this.paisOrigen = paisOrigen;
}
public String getPaisOrigen() {return paisOrigen;}
//############# PETICIÓN DE DATOS ###########################
public void imprimirProductoFresco() {
System.out.println("El nombre del producto: " + getNombre() + " fechaCaducidad: " + getFechaCaducidad() + " número de lote: " + getNumeroLote() + " fecha de envasado: " + getFechaEnvasado() + " país de origen: " + getPaisOrigen());
}
}
Archivo Producto Refrigerado
package AprenderProgramar;
public class ProductoRefrigerado1 extends EmpresaAgroAlimentaria1 {
//################ ATRIBUTOS ############################
private String codigoSupervision;
private String fechaEnvasado;
private int temperaturaMantenimiento;
private String paisOrigen;
//############### CONSTRUCTOR ###########################
public ProductoRefrigerado1(String nombre, String fechaCaducidad, String numeroLote, String codigoSupervision, String fechaEnvasado,
int temperaturaMantinimiento, String paisOrigen) {
super(nombre, fechaCaducidad, numeroLote);
this.codigoSupervision = codigoSupervision;
this.fechaEnvasado = fechaEnvasado;
this.temperaturaMantenimiento = temperaturaMantenimiento;
this.paisOrigen = paisOrigen;
}
//################ MÉTODOS SETTER Y GETTER ###################
public void setCodigoSupervision(String codigoSupervision) {
this.codigoSupervision = codigoSupervision;
}
public String getCodigoSupervision() {return codigoSupervision;}
public void setFechaEnvasado(String fechaEnvasado) {
this.fechaEnvasado = fechaEnvasado;
}
public String getFechaEnvasado() {return fechaEnvasado;}
public void setTemperaturaMantenimiento(int temperaturaMantenimiento) {
this.temperaturaMantenimiento = temperaturaMantenimiento;
}
public int getTemperaturaMantenimiento() {return temperaturaMantenimiento;}
public void setPaisOrigen(String paisOrigen) {
this.paisOrigen = paisOrigen;
}
public String getPaisOrigen() {return paisOrigen;}
////############# PETICIÓN DE DATOS ###########################
public void imprimirProductoRefrigerado() {
System.out.println("El nombre del producto: " + getNombre() + " fechaCaducidad: " + getFechaCaducidad() + " número de lote: " + getNumeroLote() + " código de Supervisión: " + getCodigoSupervision()
+ " fecha de envasado: " + getFechaEnvasado() + " temperatura de mantenimiento: " + getTemperaturaMantenimiento() + " pais de origen " + getPaisOrigen() );
}
}
Archivo Producto Congelado
package AprenderProgramar;
public class ProductoCongelado1 extends EmpresaAgroAlimentaria1 {
//################ ATRIBUTOS ############################
private String fechaEnvasado;
private String paisOrigen;
private int temperaturaMantenimiento;
//############### CONSTRUCTOR ###########################
public ProductoCongelado1(String nombre, String fechaCaducidad, String numeroLote, String fechaEnvasado, String paisOrigen, int temperaturaMantenimiento) {
super(nombre, fechaCaducidad, numeroLote);
this.fechaEnvasado = fechaEnvasado;
this.paisOrigen = paisOrigen;
this.temperaturaMantenimiento = temperaturaMantenimiento;
}
//################ MÉTODOS SETTER Y GETTER ###############
public void setFechaEnvasado(String fechaEnvasado) {
this.fechaEnvasado = fechaEnvasado;
}
public String getFechaEnvasado() {return fechaEnvasado;}
public void setPaisOrigen(String paisOrigen) {
this.paisOrigen = paisOrigen;
}
public String getPaisOrigen() {return paisOrigen;}
public void setTemperaturaMantenimiento(int temperaturaMantenimiento) {
this.temperaturaMantenimiento = temperaturaMantenimiento;
}
public int getTemperaturaMantenimiento() {return temperaturaMantenimiento;}
//############# PETICIÓN DE DATOS ##########################
public void imprimirProductoCongelado() {
System.out.println("El nombre del producto: " + getNombre() + " fechaCaducidad: " + getFechaCaducidad() + " número de lote: " + getNumeroLote() +
" Fecha de envasado: " + getFechaEnvasado() + " pais de origen: " + getPaisOrigen() + " temperatura de mantenimiento: " + getTemperaturaMantenimiento());
}
}
Archivo Congelado por Agua
package AprenderProgramar;
//################## ATRIBUTOS ####################################
public class CongeladoPorAgua extends ProductoCongelado1 {
private double salinidadAgua;
//################# CONTRUCTOR ####################################
public CongeladoPorAgua(String nombre, String fechaCaducidad, String numeroLote, String fechaEnvasado, String paisOrigen, int temperaturaMantenimiento, double salinidadAgua) {
super(nombre, fechaCaducidad, numeroLote, fechaEnvasado, paisOrigen, temperaturaMantenimiento);
this.salinidadAgua = salinidadAgua;
}
//################ MÉTODOS SETTER Y GETTER #######################
public void setSalinidadAgua(Double salidadAgua) {
this.salinidadAgua = salinidadAgua;
}
public double getSalinidadAgua() {return salinidadAgua;}
//############# PETICIÓN DE DATOS ###########################
public void imprimirCongeladoPorAgua() {
System.out.println("El nombre del producto: " + getNombre() + " fechaCaducidad: " + getFechaCaducidad() + " número de lote: " + getNumeroLote() +
" Fecha de envasado: " + getFechaEnvasado() + " pais de origen: " + getPaisOrigen() + " temperatura de mantenimiento: " + getTemperaturaMantenimiento() + " salinidad del agua: " + getSalinidadAgua());
}
}
Archivo Congelado por Aire
package AprenderProgramar;
public class CongeladoPorAire extends ProductoCongelado1 {
//########### ATRIBUTOS #####################################
private double nitrogeno;
private double oxigeno;
private double dioxidoCarbono;
private double vaporAgua;
//############ CONSTRUCTOR #################################
public CongeladoPorAire(String nombre, String fechaCaducidad, String numeroLote, String fechaEnvasado, String paisOrigen, int temperaturaMantenimiento,
double nitrogeno, double oxigeno, double dioxidoCarbono, double vaporAgua) {
super(nombre, fechaCaducidad, numeroLote, fechaEnvasado, paisOrigen, temperaturaMantenimiento);
this.nitrogeno = nitrogeno;
this.oxigeno = oxigeno;
this.dioxidoCarbono = dioxidoCarbono;
this.vaporAgua = vaporAgua;
// TODO Auto-generated constructor stub
}
//############# MÉTODOS SETTER ###########################
public void setNitrogeno(double nitrogeno) {
this.nitrogeno = nitrogeno;
}
public void setOxigeno(double oxigeno) {
this.oxigeno = oxigeno;
}
public void setDioxidoCarbono(double dioxidoCarbono) {
this.dioxidoCarbono = dioxidoCarbono;
}
public void setVaporAgua(double vaporAgua) {
this.vaporAgua = vaporAgua;
}
//########## MÉTODOS GETTER ##############################
public double getNitrogeno() {return nitrogeno;}
public double getOxigeno() {return oxigeno;}
public double getDioxidoCarbono() {return dioxidoCarbono;}
public double getVaporAgua() {return vaporAgua;}
//######### PETICIÓN DE DATOS ############################
public void imprimirCongeladoPorAire() {
System.out.println("El nombre del producto: " + getNombre() + " fechaCaducidad: " + getFechaCaducidad() + " número de lote: " + getNumeroLote() +
" Fecha de envasado: " + getFechaEnvasado() + " pais de origen: " + getPaisOrigen() + " temperatura de mantenimiento: " + getTemperaturaMantenimiento() + ". Este producto ha sido congelado por aire, siendo en porcentaje de: " +" Nitrogeno: " + getNitrogeno() +
" Oxigeno: " + getOxigeno() + " Dioxido de Carbono: " + getDioxidoCarbono() + " vapor de agua: " + getVaporAgua());
}
}
Archivo Congelado por Nitrógeno
package AprenderProgramar;
public class CongeladoPorNitrogeno extends ProductoCongelado1 {
//################ ATRIBUTOS ################################
private String metodoCongelacion;
private int exposicionNitrogeno;
//############### CONSTRUCTOR ###############################
public CongeladoPorNitrogeno(String nombre, String fechaCaducidad, String numeroLote, String fechaEnvasado,
String paisOrigen, int temperaturaMantenimiento, String metodoCongelacion, int exposicionNitrogeno) {
super(nombre, fechaCaducidad, numeroLote, fechaEnvasado, paisOrigen, temperaturaMantenimiento);
this.metodoCongelacion = metodoCongelacion;
this.exposicionNitrogeno = exposicionNitrogeno;
}
//############## MÉTODOS SETTER Y GETTER ###################
public void setMetodoCongelacion(String metodoCongelacion) {
this.metodoCongelacion = metodoCongelacion;
}
public String getMetodoCongelacion() {return metodoCongelacion;}
public void setExposicionNitrogeno(int exposicionNitrogeno) {
this.exposicionNitrogeno = exposicionNitrogeno;
}
public int getExposicionNitrogeno() {return exposicionNitrogeno;}
//############# PETICIÓN DE DATOS ###########################
public void imprimirCongeladoPorNitrogeno() {
System.out.println("El nombre del producto: " + getNombre() + " fechaCaducidad: " + getFechaCaducidad() + " número de lote: " + getNumeroLote() +
" Fecha de envasado: " + getFechaEnvasado() + " pais de origen: " + getPaisOrigen() + " temperatura de mantenimiento: " + getTemperaturaMantenimiento() +
" método de congelación: " + getMetodoCongelacion() + " exposición en segundos al nitrógeno: " + getExposicionNitrogeno());
}
}
Archivo testHerencia
package AprenderProgramar;
public class testHerencia3 {
public static void main(String[] args) {
ProductoFresco1 productoFresco1 = new ProductoFresco1("Pescado,", "15/03/2018,", "A356,", "15/12/2017,", "Noruega," );
ProductoFresco1 productoFresco2 = new ProductoFresco1("Pollo,", "10/02/2017,", "A358,", "01/01/2018,", "España,");
ProductoRefrigerado1 productoRefrigerado1 = new ProductoRefrigerado1("Huevos,", "15/03/2018,", "A359,", "A1,", "01/03/2018,", -2,"España,");
ProductoRefrigerado1 productoRefrigerado2 = new ProductoRefrigerado1("Fruta,", "15/01/2018,", "F001,", "B2,", "20/01/2018,", 5,"Italia,");
ProductoRefrigerado1 productoRefrigerado3 = new ProductoRefrigerado1("Helado,", "01/01/2018,", "H001,", "H3,", "30/03/20182,", -5, "España,");
CongeladoPorAgua congeladoPorAgua1 = new CongeladoPorAgua("Guisantes,", "01/02/2018,", "V001,", "20/11/2017,", "Francia,", -10, 6);
CongeladoPorAgua congeladoPorAgua2 = new CongeladoPorAgua("Espinacas,", "01/02/2018,","V002,", "20/11/2017,", "Francia,", -10, 6);
CongeladoPorAire congeladoPorAire1 = new CongeladoPorAire("Tarta,", "01/01/2018,", "T001,", "15/11/2017,", "España,", -5, 10, 15, 0.1, 3);
CongeladoPorAire congeladoPorAire2 = new CongeladoPorAire("Pasteles,", "01/01/2018,", "P002,", "15/11/2017,", "España,", -5, 1.10, 2.5, 3.3, 15);
CongeladoPorNitrogeno congeladoPorNitrogeno = new CongeladoPorNitrogeno("Croquetas,", "02/02/2018,", "C001,","30/05/2018,","España,", -5, "Nitrogeno,", 5);
//################ IMPRIMIR DATOS INTRODUCIDOS #######################################
productoFresco1.imprimirProductoFresco();
productoFresco2.imprimirProductoFresco();
productoRefrigerado1.imprimirProductoRefrigerado();
productoRefrigerado2.imprimirProductoRefrigerado();
productoRefrigerado3.imprimirProductoRefrigerado();
congeladoPorAgua1.imprimirCongeladoPorAgua();
congeladoPorAgua2.imprimirCongeladoPorAgua();
congeladoPorAire1.imprimirCongeladoPorAire();
congeladoPorAire2.imprimirCongeladoPorAire();
congeladoPorNitrogeno.imprimirCongeladoPorNitrogeno();
}
}