Autor Tema: Java ejemplo cadena de herencia con superclases y subclases test main CU00686B  (Leído 2884 veces)

Dimitar Stefanov

  • Experto
  • *****
  • Mensajes: 598
    • Ver Perfil
Buenas tardes.

Aquí os propongo una posible solución del ejercicio CU0686B del curso Java desde cero.

Citar
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. Los productos congelados deben llevar la temperatura de congelación recomendada. Crear el código de las clases Java implementando una relación de herencia desde la superclase Producto hasta las subclases ProductoFresco, ProductoRefrigerado y ProductoCongelado. Cada clase debe disponer de constructor y permitir establecer (set) y recuperar (get) el valor de sus atributos y tener un método que permita mostrar la información del objeto. Crear una clase testHerencia2 con el método main donde se cree un objeto de cada tipo y se muestren los datos de cada uno de los objetos creados.

El código de la clase "ProductoFresco":

Código: [Seleccionar]
public class ProductoFresco extends Producto{
    private String fechaEnvase;
    private String paisOrigen;
   
    public ProductoFresco(){
        super();
        fechaEnvase = "Desconocido";
        paisOrigen = "Desconocido";
    }
   
    public ProductoFresco(String fechaCaducidad, int numeroLote, String fechaEnvase, String paisOrigen){
        super(fechaCaducidad, numeroLote);
        this.fechaEnvase = fechaEnvase;
        this.paisOrigen = paisOrigen;
    }
   
    public void setFechaEnvase(String fechaEnvase){
        this.fechaEnvase = fechaEnvase;
    }
   
    public void setPiasOrigen(String paisOrigen){
        this.paisOrigen = paisOrigen;
    }
   
    public String getFechaEnvase(){return fechaEnvase;}
    public String getPiasOrigen(){return paisOrigen;}
   
    public void mostrarInfoProductoFresco(){
        System.out.println("El producto: "+getNumeroLote()+" con fecha de envase: "+getFechaEnvase()+
        " y fecha de caducidad: "+getFechaCaducidad()+" es de país de origen: "+getPiasOrigen());
    }
}

El código de la clase "ProductoRefrigerado":

Código: [Seleccionar]
public class ProductoRefrigerado extends Producto{
    private int codigoOrganismoSupervision;
   
    public ProductoRefrigerado(){
        super();
        codigoOrganismoSupervision = 0;
    }
   
    public ProductoRefrigerado(String fechaCaducidad, int numeroLote, int codigoOrganismoSupervision){
        super(fechaCaducidad, numeroLote);
        this.codigoOrganismoSupervision = codigoOrganismoSupervision;
    }
   
    public void setCodigoOrganismoSupervision(int codigoOrganismoSupervision){
        this.codigoOrganismoSupervision = codigoOrganismoSupervision;
    }
   
    public int getCodigoOrganismoSupervision(){return codigoOrganismoSupervision; }
   
    public void mostrarInfoProductoRefrigerado(){
        System.out.println("El producto: "+getNumeroLote()+" y con código de Organismo de Supervisión: "+
        getCodigoOrganismoSupervision()+" tiene fecha de caducidad: "+getFechaCaducidad());
    }
}

El código de la clase "ProductoCongelado":

Código: [Seleccionar]
public class ProductoCongelado extends Producto{
    private float temperaturaCongelacionRecom;
   
    public ProductoCongelado(){
        super();
        temperaturaCongelacionRecom = 0;
    }
   
    public ProductoCongelado(String fechaCaducidad, int numeroLote, float temperaturaCongelacionRecom){
        super(fechaCaducidad, numeroLote);
        this.temperaturaCongelacionRecom = temperaturaCongelacionRecom;
    }
   
    public void setTemperaturaCongelacionRecom(float temperaturaCongelacionRecom){
        this.temperaturaCongelacionRecom = temperaturaCongelacionRecom;
    }
   
    public float getTemperaturaCongelacionRecom(){return temperaturaCongelacionRecom;}
   
    public void mostrarInfoProductoCongelado(){
        System.out.println("El producto: "+getNumeroLote()+" con fecha de caducidad: "+getFechaCaducidad()+
        " tiene una temperatura de congelación recomendada de: "+getTemperaturaCongelacionRecom()+"C");
    }
}

El código de la clase "Producto":

Código: [Seleccionar]
public class Producto{
    private String fechaCaducidad;
    private int numeroLote;
   
    public Producto(){
        fechaCaducidad = "Desconocida";
        numeroLote = 0;
    }
   
    public Producto(String fechaCaducidad, int numeroLote){
        this.fechaCaducidad = fechaCaducidad;
        this.numeroLote = numeroLote;
    }
   
    public void setFechaCaducidad(String fechaCaducidad){
        this.fechaCaducidad = fechaCaducidad;
    }
   
    public void setNumeroLote(int numeroLote){
        this.numeroLote = numeroLote;
    }
   
    public String getFechaCaducidad(){return fechaCaducidad;}
    public int getNumeroLote(){return numeroLote;}
}

El código de la clase main "TestHerencia2":

Código: [Seleccionar]
public class TestHerencia2{
    public static void main(String []Args){
        //Crear objetos nuevos con constructores con parámetros
        ProductoFresco productoFresco1 = new ProductoFresco("20-10-2016", 3409, "20-08-2016", "España");
        ProductoRefrigerado productoRefrigerado1 = new ProductoRefrigerado("30-10-2016", 784, 1200);
        ProductoCongelado productoCongelado1 = new ProductoCongelado("20-11-2016", 7345, -10);
        System.out.println("Productos(objetos) creados con constructores con parámetros:");
        productoFresco1.mostrarInfoProductoFresco();
        productoRefrigerado1.mostrarInfoProductoRefrigerado();
        productoCongelado1.mostrarInfoProductoCongelado();
        //Crear objetos nuevos con constructores sin parámetros
        ProductoFresco productoFresco2 = new ProductoFresco();
        ProductoRefrigerado productoRefrigerado2 = new ProductoRefrigerado();
        ProductoCongelado productoCongelado2 = new ProductoCongelado();
        System.out.println("Productos(objetos) creados con constructores sin parámetros:");
        productoFresco2.mostrarInfoProductoFresco();
        productoRefrigerado2.mostrarInfoProductoRefrigerado();
        productoCongelado2.mostrarInfoProductoCongelado();
       
    }
}

Gracias.
« Última modificación: 14 de Marzo 2016, 11:12 por Mario R. Rancel »

Mario R. Rancel

  • Administrador
  • Experto
  • ********
  • APR2.COM
  • Mensajes: 1978
    • Ver Perfil
Buenos días

Buen trabajo, has cumplido con lo requerido por el ejercicio

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".