Buenas tardes. Presento posible solución del ejercicio propuesto CU00687B del curso de fundamentos de programación Java. Por lo que pude leer en el foro estoy teniendo problemas a la hora de nombrar las clases, estoy abocado a mejorar sobre ese tema y varios mas sobre el aprendizaje. Cordial Saludo.
package CU00687B;
/**
* La clase Producto centraliza los atributos y métodos comunes a todos los productos
* que procesa la empresa
* @author (Arnaldo R. Martinez)
* @version (31-Jul-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
*/
public class Producto {
private String fechaDeVencimiento;
private String numDeLote;
private String fechaDeEnvasado;
private String paisDeOrigen;
//Constructor general sin parametros.
public Producto(){
fechaDeVencimiento = "";
numDeLote = "";
fechaDeEnvasado = "";
paisDeOrigen = "";
}
//Constructor con parametros
public Producto(String fVto, String lote, String fEnv, String Origen) {
fechaDeVencimiento = fVto;
numDeLote = lote;
fechaDeEnvasado = fEnv;
paisDeOrigen = Origen;
}
//Métodos set
public void setVencimiento(String fechaDeVencimiento) {
this.fechaDeVencimiento = fechaDeVencimiento;
}
public void setNumLote(String numDeLote) {
this.numDeLote = numDeLote;
}
public void setEnvasado(String fechaDeEnvasado) {
this.fechaDeEnvasado = fechaDeEnvasado;
}
public void setOrigen(String paisDeOrigen) {
this.paisDeOrigen = paisDeOrigen;
}
//Métodos get
public String getVencimiento() {return fechaDeVencimiento;}
public String getNumLote() {return numDeLote;}
public String getEnvasado() {return fechaDeEnvasado;}
public String getOrigen() {return paisDeOrigen;}
}//Fin de la superclase
package CU00687B;
/**
* La subclase 'ProductoFresco' es heredada de la superclase 'Producto'.
*
* @author (Arnaldo R. Martinez)
* @version (31-Jul-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
*/
public class ProductoFresco extends Producto {
//Constructor
public ProductoFresco(){
super();
}
public ProductoFresco(String fVto, String lote, String fEnv, String Origen) {
super(fVto,lote,fEnv,Origen);
}//Cierre del constructor
//Método de la subclase
public void MostrarProductoFresco() {
System.out.println("El producto fresco " +getNumLote()+ " tiene fecha de vencimiento " +getVencimiento()+ "\nel origen es " +getOrigen()+ " y fue envasado el " +getEnvasado());
}
}//Cierre de la clase
package CU00687B;
/**
* 'ClaseAuxiliar' es una subclase de la superclase 'Producto' y a la vez
* es superclase de las clases 'ProductoRefrigerado' y 'ProductoCongelado'
* maneja y muestra atributos de la temperatura de mantenimiento para los
* productos que requieren tenerla controlada.
* @author (Arnaldo R. Martinez)
* @version (31-Jul-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
*/
public class ClaseAuxiliar extends Producto {
private float temperaturaDeMantenimiento;
public ClaseAuxiliar() {
super();
temperaturaDeMantenimiento = 0.0f;
}
public ClaseAuxiliar(String fVto, String lote, String fEnv, String Origen, float tempMant) {
super(fVto,lote,fEnv,Origen);
temperaturaDeMantenimiento = tempMant;
}
//Método set
public void setTemperatura(float temperaturaDeMantenimiento) {
this.temperaturaDeMantenimiento = temperaturaDeMantenimiento;
}
//Método get
public float getTemperatura() {return temperaturaDeMantenimiento;}
}
package CU00687B;
/**
* 'ProductoRefrigerado' es heredada de 'ClaseAuxiliar' que q su vez hereda de 'Producto'.
*
* @author (Arnaldo R. Martinez)
* @version (01-Ago-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
*/
public class ProductoRefrigerado extends ClaseAuxiliar {
private String codigoInspeccionOSA;
//Constructor general sin parámetros
public ProductoRefrigerado() {
super();
codigoInspeccionOSA = "";
}
//Constructor con parámetros
public ProductoRefrigerado(String fVto,String Lote, String fEnv, String Origen, float tempMant, String codOSA) {
super (fVto,Lote,fEnv,Origen,tempMant);
codigoInspeccionOSA = codOSA;
}
//Métodos de la clase.
public void setInspOSA(String codigoInspeccionOSA) { this.codigoInspeccionOSA = codigoInspeccionOSA;}
public String getInspOSA() {return codigoInspeccionOSA;}
public void MostrarProductoRefrigerado() {
System.out.println("El producto refrigerado " +getNumLote()+ " fue envasado el " +getEnvasado()+ "\ntiene fecha de vencimiento " +getVencimiento()+ " el certificado de inspeccion es: " +getInspOSA()+ "\nel origen es " +getOrigen()+ " y se recomienda mantener a una temperatura de " +getTemperatura()+ " °C");
}
}//Cierre de la clase.
package CU00687B;
/**
* 'ProductoCongelado' es heredada de 'ClaseAuxiliar' que a su vez hereda de 'Producto'.
* No presenta atributos propios ya que los mismos están definidos en las superclases de la misma
* @author (Arnaldo R. Martinez)
* @version (01-Ago-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
*/
public class ProductoCongelado extends ClaseAuxiliar {
//Constructor general sin parámetros.
public ProductoCongelado() {
super();
}
//Constructor con parámetros.
public ProductoCongelado(String fVto, String Lote, String fEnv, String Origen, float tempMant) {
super (fVto,Lote,fEnv,Origen,tempMant);
}
//Método de la clase.
//Presenta dudas si debe incluirse, ya que 'ProductoCongelado' tiene tres subclases y en cada una
//existe un método 'Mostrar()'
public void MostrarProductoCongelado() {
System.out.println("El producto congelado " +getNumLote()+ " fue envasado el " +getEnvasado()+ "\ntiene fecha de vencimiento " +getVencimiento()+ " el origen es " +getOrigen()+ "\ny se recomienda mantener a una temperatura de " +getTemperatura()+ " °C");
}
}
package CU00687B;
/**
* 'ProductoCongeladoPorAire' es subclase de 'ProductoCongelado'
*
* @author (Arnaldo R. Martinez)
* @version (01-Ago-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
*/
public class ProductoCongeladoPorAire extends ProductoCongelado {
private float porcentajeNitrogeno;
private float porcentajeOxigeno;
private float porcentajeDioxidoDeCarbono;
private float porcentajeVaporDeAgua;
//Constructor general sin parámetros
public ProductoCongeladoPorAire() {
super();
porcentajeNitrogeno = 0.0f;
porcentajeOxigeno = 0.0f;
porcentajeDioxidoDeCarbono = 0.0f;
porcentajeVaporDeAgua = 0.0f;
}
//Constructos con parámetros
public ProductoCongeladoPorAire(String fVto,String lote,String fEnv,String Origen,float tempMant,float porcNi,float porcO2,float porcDC,float porcVA) {
super(fVto,lote,fEnv,Origen,tempMant);
porcentajeNitrogeno = porcNi;
porcentajeOxigeno = porcO2;
porcentajeDioxidoDeCarbono = porcDC;
porcentajeVaporDeAgua = porcVA;
}
//Métodos set
public void setNitrogeno(float porcentajeNitrogeno) {
this.porcentajeNitrogeno = porcentajeNitrogeno;
}
public void setOxigeno(float porcentajeOxigeno) {
this.porcentajeOxigeno = porcentajeOxigeno;
}
public void setDDC(float porcentajeDioxidoDeCarbono) {
this.porcentajeDioxidoDeCarbono = porcentajeDioxidoDeCarbono;
}
public void setVapor(float porcentajeVaporDeAgua) {
this.porcentajeVaporDeAgua = porcentajeVaporDeAgua;
}
//Métodos get
public float getNitrogeno() {return porcentajeNitrogeno;}
public float getOxigeno(){return porcentajeOxigeno;}
public float getDDC() {return porcentajeDioxidoDeCarbono;}
public float getVapor(){return porcentajeVaporDeAgua;}
//Otros métodos
public void MostrarComposicionAire() {
System.out.println("Composición del aire " +getNitrogeno()+ " %," +getOxigeno()+ " %," +getDDC()+ " %," +getVapor()+ "%.");
}
public void MostrarProductoCongeladoPorAire() {
System.out.println("El producto congelado " +getNumLote()+ " fue envasado el " +getEnvasado()+ "\ntiene fecha de vencimiento " +getVencimiento()+ " el origen es " +getOrigen()+ "\ny se recomienda mantener a una temperatura de " +getTemperatura()+ " °C.\nLa composicion del aire de congelacion es: Nitrogeno " +getNitrogeno()+ " %, \nOxigeno " +getOxigeno()+ " %, Dioxido de Carbono " +getDDC()+ " %, Vapor de agua " +getVapor()+ " %.");
}
}
package CU00687B;
/**
* 'ProductoCongeladoPorAgua' es dubclase de 'ProductoCongelado'.
*
* @author (Arnaldo R. Martinez)
* @version (01-Ago-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
*/
public class ProductoCongeladoPorAgua extends ProductoCongelado {
private float salinidadAgua;
//Cosntructor general sin parámetros.
public ProductoCongeladoPorAgua() {
super();
salinidadAgua = 0.0f;
}
//Constructor con parámetros
public ProductoCongeladoPorAgua(String fVto,String lote,String fEnv,String Origen,float tempMant,float salAgua) {
super(fVto,lote,fEnv,Origen,tempMant);
salinidadAgua = salAgua;
}//Cierre del constructor.
//Métodos de la subclase
public void setSalinidad(float salinidadAgua) {
this.salinidadAgua = salinidadAgua;
}
public float getSalinidad() {return salinidadAgua;}
public void MostrarProductoCongeladoPorAgua() {
System.out.println("El producto congelado " +getNumLote()+ " fue envasado el " +getEnvasado()+ "\ntiene fecha de vencimiento " +getVencimiento()+ " el origen es " +getOrigen()+ "\ny se recomienda mantener a una temperatura de " +getTemperatura()+ " °C.\nLa salinidad del agua de comgelación es de " + getSalinidad()+ " gr/litro.");
}
}//Cierre de la clase
package CU00687B;
/**
* 'ProductoCongeladoPorNitrogeno' hereda de 'ProductoCongelado'.
*
* @author (Arnaldo R. Martinez)
* @version (01-Ago-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
*/
public class ProductoCongeladoPorNitrogeno extends ProductoCongelado {
private String metodoCongelador;
private int tiempoExposicioSegundos;
//Constructor general sin parámetros
public ProductoCongeladoPorNitrogeno() {
super();
metodoCongelador = "";
tiempoExposicioSegundos = 0;
}
//Constructor con parámetros.
public ProductoCongeladoPorNitrogeno(String fVto,String lote,String fEnv,String Origen,float tempMant,String metCong,int tSeg) {
super(fVto,lote,fEnv,Origen,tempMant);
metodoCongelador = metCong;
tiempoExposicioSegundos = tSeg;
}
//Métodos set
public void setMetodoCongelador(String metodoCongelador) {
this.metodoCongelador = metodoCongelador;
}
public void setTiempoExposicion(int tiempoExposicioSegundos) {
this.tiempoExposicioSegundos = tiempoExposicioSegundos;
}
//Métodos get
public String getMetodoCongelador() {return metodoCongelador;}
public int getTiempoExposicion() {return tiempoExposicioSegundos;}
//Otro método
public void MostrarProductoCongeladoPorNitrogeno(){
System.out.println("El producto congelado " +getNumLote()+ " fue envasado el " +getEnvasado()+ "\ntiene fecha de vencimiento " +getVencimiento()+ " el origen es " +getOrigen()+ "\ny se recomienda mantener a una temperatura de " +getTemperatura()+ " °C.\nEl metodo de congelación por Nitrogeno es por " +getMetodoCongelador()+ ",\nel tiempo de exposicion es de " +getTiempoExposicion()+ " segundos.");
}
}
package CU00687B;
/**
* TestHerencia3. Se crean 2 productos frescos, 3 refrigerados y 5 congelados,
* de los últimos (2 congelados por agua, 2 por aire y 1 por nitrógeno).
* @author (Arnaldo R. Martinez)
* @version (01-Ago-2017 - Ejercicio propuesto por 'aprenderaprogramar.com')
*/
public class TestHerencia3 {
public static void main (String [] Args) {
ProductoFresco pfresco1 = new ProductoFresco("12-08-2017","FR1001","30-07-2017","Argentina");
ProductoFresco pfresco2 = new ProductoFresco("25-07-2017","FR1002","25-07-2017","Brasil");
ProductoRefrigerado prefrig1 = new ProductoRefrigerado("30-08-2017","RF1003","20-07-2017","Bolivia",2.0f,"AR-5004");
ProductoRefrigerado prefrig2 = new ProductoRefrigerado("05-09-2017","RF1004","20-07-2017","Brasil",3.5f,"AR-5005");
ProductoRefrigerado prefrig3 = new ProductoRefrigerado("15-09-2017","RF1005","20-07-2017","Chile",1.5f,"AR-5006");
ProductoCongeladoPorAgua pcongagua1 = new ProductoCongeladoPorAgua("12-06-2017","CAG1006","30-12-2017","Alemania",-18.0f,35.0f);
ProductoCongeladoPorAgua pcongagua2 = new ProductoCongeladoPorAgua("12-06-2017","CAG1007","30-12-2017","Francia",-15.5f,55.5f);
ProductoCongeladoPorAire pcongaire1 = new ProductoCongeladoPorAire("12-06-2017","CAI1008","30-12-2017","España",-12.0f,70.0f,19.0f,2.0f,8.0f);
ProductoCongeladoPorAire pcongaire2 = new ProductoCongeladoPorAire("12-06-2017","CAI1009","30-12-2017","Italia",-22.3f,70.5f,19.5f,2.0f,7.0f);
ProductoCongeladoPorNitrogeno pcongnitro1 = new ProductoCongeladoPorNitrogeno("12-06-2017","CAI1010","30-12-2017","Argentina",-25.3f,"Inmersion",7);
//Se muestran resultados.
pfresco1.MostrarProductoFresco();
System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
pfresco2.MostrarProductoFresco();
System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
prefrig1.MostrarProductoRefrigerado();
System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
prefrig2.MostrarProductoRefrigerado();
System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
prefrig3.MostrarProductoRefrigerado();
System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
pcongagua1.MostrarProductoCongeladoPorAgua();
System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
pcongagua2.MostrarProductoCongeladoPorAgua();
System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
pcongaire1.MostrarProductoCongeladoPorAire();
System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
pcongaire2.MostrarProductoCongeladoPorAire();
System.out.println("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
pcongnitro1.MostrarProductoCongeladoPorNitrogeno();
System.out.println("xxxxxxxxxxxxxxx fin del programa xxxxxxxxxxxxxxxxxxxxxxx");
}
}