Hola otra vez. Veamos como me salió este ejercicio. Son un montón de clases, ya que además de las que pide el ejercicio, decidí crear una clase ProductoRefCon, que agrupa atributos de las clases ProductoRefrigerado y ProductoCongelado, y de esa manera evitar la repetición de código.
En este ejemplo no he inicializado las variables con valores por defecto, sino con valores específicos, para ver si la clase Test muestra correctamente los datos del producto.
Aquí vamos:
Clase Producto
public class Producto {
private String fechaCaducidad;
private int numeroLote;
private String fechaEnvio;
private String paisOrigen;
public Producto () {
fechaCaducidad = "14/02/2018";
numeroLote = 52525542;
fechaEnvio = "25/01/2015";
paisOrigen = "Perú";
}
public Producto (String valorFechaCaducidad, int valorNumeroLote, String valorFechaEnvio, String valorPaisOrigen) {
fechaCaducidad = valorFechaCaducidad;
numeroLote = valorNumeroLote;
fechaEnvio = valorFechaEnvio;
paisOrigen = valorPaisOrigen;
}
public void setFechaCaducidad (String valorFechaCaducidad){
fechaCaducidad = valorFechaCaducidad;
}
public void setNumeroLote (int valorNumeroLote) {
numeroLote = valorNumeroLote;
}
public void setFechaEnvio (String valorFechaEnvio) {
fechaEnvio = valorFechaEnvio;
}
public void setPaisOrigen (String valorPaisOrigen) {
paisOrigen = valorPaisOrigen;
}
public String getFechaCaducidad () {
return fechaCaducidad;
}
public int getNumeroLote () {
return numeroLote;
}
public String getFechaEnvio () {
return fechaEnvio;
}
public String getPaisOrigen () {
return paisOrigen;
}
public void dameDatos () {
System.out.println ("Fecha de caducidad: " + getFechaCaducidad());
System.out.println ("Número de lote: " + getNumeroLote());
System.out.println ("Fecha de envío: " + getFechaEnvio());
System.out.println ("País de origen: " + getPaisOrigen ());
}
}
Clase ProductoFresco
public class ProductoFresco extends Producto {
public ProductoFresco () {
super ();
}
public ProductoFresco (String valorFechaCaducidad, int valorNumeroLote, String valorFechaEnvasado, String valorPaisOrigen) {
super (valorFechaCaducidad, valorNumeroLote, valorFechaEnvasado, valorPaisOrigen);
}
public void dameDatos() {
super.dameDatos();
}
}
Clase ProRefCon
public class ProRefCon extends Producto {
private int tempMantRec;
public ProRefCon () {
super ();
tempMantRec = 11;
}
public ProRefCon (String valorFechaCaducidad, int valorNumeroLote, String valorFechaEnvasado, String valorPaisOrigen, int valorTempMantRec) {
super (valorFechaCaducidad, valorNumeroLote, valorFechaEnvasado, valorPaisOrigen);
tempMantRec = valorTempMantRec;
}
public void setTempMantRec (int valorTempMantRec) {
tempMantRec = valorTempMantRec;
}
public int getTempMantRec () {
return tempMantRec;
}
public void dameDatos() {
super.dameDatos();
System.out.println ("Temperatura de mantenimiento recomendada: " + getTempMantRec() + " grados");
}
}
Clase ProductoRefrigerado
public class ProductoRefrigerado extends ProRefCon {
private String codigoSupervAlim;
public ProductoRefrigerado () {
super ();
codigoSupervAlim = "75jhyn";
}
public ProductoRefrigerado (String valorFechaCaducidad, int valorNumeroLote, String valorFechaEnvasado, String valorPaisOrigen, int valorTempMantRec, String valorCodigoSupervAlim) {
super (valorFechaCaducidad, valorNumeroLote, valorFechaEnvasado, valorPaisOrigen, valorTempMantRec);
codigoSupervAlim = valorCodigoSupervAlim;
}
public void getCodigoSupervAlim (String valorCodigoSupervAlim) {
codigoSupervAlim = valorCodigoSupervAlim;
}
public String getCodigoSupervAlim () {
return codigoSupervAlim;
}
public void dameDatos() {
super.dameDatos();
System.out.println ("Código del organismo de supervición alimentaria: " + getCodigoSupervAlim());
}
}
Clase ProductoCongelado
public class ProductoCongelado extends ProRefCon {
public ProductoCongelado () {
super ();
}
public ProductoCongelado (String valorFechaCaducidad, int valorNumeroLote, String valorFechaEnvasado, String valorPaisOrigen, int valorTempMantRec) {
super (valorFechaCaducidad, valorNumeroLote, valorFechaEnvasado, valorPaisOrigen, valorTempMantRec);
}
public void dameDatos() {
super.dameDatos();
}
}
Clase ProductoCongeladoAire
public class ProductoCongeladoAire extends ProductoCongelado {
private double porcentajeNitrogeno;
private double porcentajeOxigeno;
private double porcentajeDioxidoDeCarbono;
private double porcentajeVaporDeAgua;
public ProductoCongeladoAire () {
super ();
porcentajeNitrogeno = 25.5;
porcentajeOxigeno = 10.4;
porcentajeDioxidoDeCarbono = 55;
porcentajeVaporDeAgua = 10;
}
public ProductoCongeladoAire (String valorFechaCaducidad, int valorNumeroLote, String valorFechaEnvasado, String valorPaisOrigen, int valorTempMantRec, double valorPorcentajeNitrogeno, double valorPorcentajeOxigeno, double valorPorcentajeDioxidoDeCarbono, double valorPorcentajeVaporDeAgua) {
super (valorFechaCaducidad, valorNumeroLote, valorFechaEnvasado, valorPaisOrigen, valorTempMantRec);
porcentajeNitrogeno = valorPorcentajeNitrogeno;
porcentajeOxigeno = valorPorcentajeOxigeno;
porcentajeDioxidoDeCarbono = valorPorcentajeDioxidoDeCarbono;
porcentajeVaporDeAgua = valorPorcentajeVaporDeAgua;
}
public void setPorcentajeNitrogeno (double valorPorcentajeNitrogeno) {
porcentajeNitrogeno = valorPorcentajeNitrogeno;
}
public void setPorcentajeOxigeno (double valorPorcentajeOxigeno) {
porcentajeOxigeno = valorPorcentajeOxigeno;
}
public void setPorcentajeDioxidoDeCarbono (double valorPorcentajeDioxidoDeCarbono) {
porcentajeDioxidoDeCarbono = valorPorcentajeDioxidoDeCarbono;
}
public void setPorcentajeVaporDeAgua (double valorPorcentajeVaporDeAgua) {
porcentajeVaporDeAgua = valorPorcentajeVaporDeAgua;
}
public double getPorcentajeNitrogeno () {
return porcentajeNitrogeno;
}
public double getPorcentajeOxigeno () {
return porcentajeOxigeno;
}
public double getPorcentajeDioxidoDeCarbono () {
return porcentajeDioxidoDeCarbono;
}
public double getPorcentajeVaporDeAgua () {
return porcentajeVaporDeAgua;
}
public void dameDatos () {
super.dameDatos ();
System.out.println ("Composición del aire con que fue congelado:");
System.out.println ("Nitrógeno: " + getPorcentajeNitrogeno() + "%");
System.out.println ("Oxígeno: " + getPorcentajeOxigeno() + "%");
System.out.println ("Dióxido de carbono: " + getPorcentajeDioxidoDeCarbono() + "%");
System.out.println ("Vapor de agua: " + getPorcentajeVaporDeAgua() + "%");
}
}
Clase ProductoCongeladoAgua
public class ProductoCongeladoAgua extends ProductoCongelado {
private int salPorLitro;
public ProductoCongeladoAgua () {
super ();
salPorLitro = 32;
}
public ProductoCongeladoAgua (String valorFechaCaducidad, int valorNumeroLote, String valorFechaEnvasado, String valorPaisOrigen, int valorTempMantRec, double valorPorcentajeNitrogeno, double valorPorcentajeOxigeno, double valorPorcentajeDioxidoDeCarbono, double valorPorcentajeVaporDeAgua, int valorSalPorLitro) {
super (valorFechaCaducidad, valorNumeroLote, valorFechaEnvasado, valorPaisOrigen, valorTempMantRec);
salPorLitro = valorSalPorLitro;
}
public void setSalPorLitro (int valorSalPorLitro) {
salPorLitro = valorSalPorLitro;
}
public int getSalPorLitro () {
return salPorLitro;
}
public void dameDatos () {
super.dameDatos ();
System.out.println ("Salinidad: " + getSalPorLitro() + " grs. por litro de agua");
}
}
Clase ProductoCongeladoNitrogeno
public class ProductoCongeladoNitrogeno extends ProductoCongelado {
private String metodo;
private int tiempoExposicion;
public ProductoCongeladoNitrogeno () {
super ();
metodo = "Frio seco";
tiempoExposicion = 775;
}
public ProductoCongeladoNitrogeno (String valorFechaCaducidad, int valorNumeroLote, String valorFechaEnvasado, String valorPaisOrigen, int valorTempMantRec, double valorPorcentajeNitrogeno, double valorPorcentajeOxigeno, double valorPorcentajeDioxidoDeCarbono, double valorPorcentajeVaporDeAgua, String valorMetodo, int valorTiempoExposicion) {
super (valorFechaCaducidad, valorNumeroLote, valorFechaEnvasado, valorPaisOrigen, valorTempMantRec);
metodo = valorMetodo;
tiempoExposicion = valorTiempoExposicion;
}
public void setMetodo (String valorMetodo) {
metodo = valorMetodo;
}
public void setTiempoExposicion (int valorTiempoExposicion) {
tiempoExposicion = valorTiempoExposicion;
}
public String getMetodo () {
return metodo;
}
public int getTiempoExposicion () {
return tiempoExposicion;
}
public void dameDatos () {
super.dameDatos ();
System.out.println ("Método de congelación empleado: " + getMetodo());
System.out.println ("Tiempo de exposición al nitrógeno: " + getTiempoExposicion() + " segundos");
}
}
Clase TestProducto
public class TestProducto {
public static void main (String [] args) {
ProductoFresco proFres1 = new ProductoFresco ();
ProductoFresco profres2 = new ProductoFresco ();
ProductoRefrigerado proRef1 = new ProductoRefrigerado ();
ProductoRefrigerado proRef2 = new ProductoRefrigerado ();
ProductoRefrigerado proRef3 = new ProductoRefrigerado ();
ProductoCongeladoAire proConAi1 = new ProductoCongeladoAire ();
ProductoCongeladoAire proConAi2 = new ProductoCongeladoAire ();
ProductoCongeladoAgua proConAg1 = new ProductoCongeladoAgua ();
ProductoCongeladoAgua proConAg2 = new ProductoCongeladoAgua ();
ProductoCongeladoNitrogeno proConNit1 = new ProductoCongeladoNitrogeno ();
System.out.println ("\f");
System.out.println ("PRODUCTO FRESCO 1");
proFres1.dameDatos();
System.out.println ("");
System.out.println ("PRODUCTO FRESCO 2");
profres2.dameDatos();
System.out.println ("");
System.out.println ("PRODUCTO REFRIGERADO 1");
proRef1.dameDatos();
System.out.println ("");
System.out.println ("PRODUCTO REFRIGERADO 2");
proRef2.dameDatos();
System.out.println ("");
System.out.println ("PRODUCTO REFRIGERADO 3");
proRef3.dameDatos();
System.out.println ("");
System.out.println ("PRODUCTO CONGELADO CON AIRE 1");
proConAi1.dameDatos();
System.out.println ("");
System.out.println ("PRODUCTO CONGELADO CON AIRE 2");
proConAi2.dameDatos();
System.out.println ("");
System.out.println ("PRODUCTO CONGELADO CON AGUA 1");
proConAg1.dameDatos();
System.out.println ("");
System.out.println ("PRODUCTO CONGELADO CON AGUA 2");
proConAg2.dameDatos();
System.out.println ("");
System.out.println ("PRODUCTO CONGELADO CON NITRÓGENO 1");
proConNit1.dameDatos();
}
}
Cuánto código! Esto se está poniendo divertido!!!