Autor Tema: Ejemplo herencia java extends Ejercicio CU00686B sobreescribiendo toString()  (Leído 3195 veces)

el_calderas

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 43
    • Ver Perfil
Hola, aqui os pongo mi solución para este ejercicio.

Citar
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.

En este caso, para representar la información de cada objeto, no he usado los metodos getter de cada objeto, si no que he sobrescrito el metodo toString() de cada objeto, para dar el formato que quiero a la salida de cada objeto.


Clase Producto:

Código: [Seleccionar]
public class Producto
{
    private String fechaCaducidad;
    private int numeroLote;
   
    public Producto(String fechaCaducidad, int numeroLote){
        this.fechaCaducidad=fechaCaducidad;
        this.numeroLote=numeroLote;
    }
   
    public String getFechaCaducidad(){
        return fechaCaducidad;
    }
   
    public int getNumeroLote(){
        return numeroLote;
    }
   
    public void setFechaCducidad(String fecha){
        fechaCaducidad=fecha;
    }
   
    public void setNumeroLote(int numero){
        numeroLote=numero;
    }
   
    @Override
    public String toString(){
        return String.format("Fecha de Caducidad: " + fechaCaducidad + "\n" +
        "Número de lote: " + numeroLote + "\n");
    }
}


clase Fresco

Código: [Seleccionar]
public class Fresco extends Producto
{
    private String paisOrigen;
    private String fechaEnvasado;
   
    public Fresco(String fechaCaducidad, int numeroLote,String paisOrigen, String fechaEnvasado){
        super(fechaCaducidad,numeroLote);
        this.paisOrigen=paisOrigen;
        this.fechaEnvasado=fechaEnvasado;
    }
   
    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(super. toString() +
        "Pais de origen: " + this.paisOrigen +"\n" +
        "Fecha de envasado: " + this.fechaEnvasado +"\n");
    }
}


Clase Refrigerado

Código: [Seleccionar]
public class Refrigerado extends Producto
{
   //información especifica
   private String codigo;
   
   public Refrigerado(String fechaCaducidad, int numeroLote, String codigo){
       super(fechaCaducidad,numeroLote);
       this.codigo=codigo;
    }
   
    public String getCodigo(){
        return codigo;
    }
   
    public void setCodigo(String codigo){
        this.codigo=codigo;
    }
   
    @Override
    public String toString(){
        return String.format(super. toString() +
        "Codigo OSA: " + this.codigo +"\n" );
    }
}


Clase congelado

Código: [Seleccionar]
public class Congelado extends Producto
{
    //información generica
    private double temperaturaCongelación;
   
    public Congelado(String fechaCaducidad, int numeroLote, double temperaturaCongelación){
        super(fechaCaducidad,numeroLote);
        this.temperaturaCongelación=temperaturaCongelación;
    }
   
    public double getTemperaturaCongelación(){
        return temperaturaCongelación;
    }
   
    public void setTemperaturaCongelación(double temperaturaCongelación){
        this.temperaturaCongelación=temperaturaCongelación;
    }
   
    @Override
    public String toString(){
        return String.format(super. toString() +
        "Temperatura de congelación: " + this.temperaturaCongelación + "\n");
    }
}


Clase testherencia2

Código: [Seleccionar]
public class TestHerencia2
{
    public static void main(String[] args){
        //se crean los productos
        Fresco productoFresco = new Fresco("12/2/16", 565, "España", "1/1/16");
        Refrigerado productoRefrigerado = new Refrigerado("12/8/16", 235, "B345-23");
        Congelado productoCongelado = new Congelado ("2/5/16", 4567, -24);
        // se llama a los metodos correspondientes para obtener la información de cada producto
       
        System.out.println("Información del producto fresco \n" + productoFresco.toString());
        System.out.println("Información del producto refrigerado \n" + productoRefrigerado.toString());
        System.out.println("Información del producto congelado \n" + productoCongelado.toString());
    }

}

Un saludo y gracias.

« Última modificación: 01 de Junio 2015, 08:36 por Alex Rodríguez »

Lorenzo31

  • Avanzado
  • ****
  • APR2.COM
  • Mensajes: 381
    • Ver Perfil
Re:Ejercicio CU00686B tutorial ejemplo herencia java extends
« Respuesta #1 en: 29 de Mayo 2015, 15:17 »
Buenas tardes, todo ok, bien lo de usar el toString() y super.toString() aunque esto es algo que no se pedía en este ejercicio porque toString() todavía no se ha explicado en el temario del curso, se hace en una entrega posterior ;) sigue así.
« Última modificación: 03 de Septiembre 2017, 12:01 por Alex Rodríguez »

 

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".