Autor Tema: Ejercicio constructores con herencia java implementar esquema herencia CU00686B#  (Leído 4687 veces)

Jorge lopez

  • Sniper
  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 248
  • @SniperOfElite
    • Ver Perfil
 Uso de palabras clave extends y super. Constructores con herencia. Ejercicio CU00686B del curso de programación Java desde cero.

public class TestHerencia2 (clase con main)

Código: [Seleccionar]
package CU00686B;
public class TestHerencia2
{
  public static void main(String []args)
  {
    ProdFresco prodFresco = new ProdFresco();//Creación de un objeto tipo ProdFresco mediante el constructor general de la clase ProdFresco.
    ProdRefrigerado prodRefrigerado = new ProdRefrigerado();//Creación de un objeto tipo ProdRefrigerado mediante el constructor general de la clase ProdRefrigerado.
    ProdCongelado prodCongelado = new ProdCongelado("10-18-2020", 201412152200L, -1.5F);/*Creación de un objeto tipo ProdCongelado mediante el constructor
    con parámetros de la clase ProdCongelado*/
    prodFresco.setFechaDeExpiracion("12-15-2015");
    prodFresco.setNumDeLote(201412152200L);
    prodFresco.setFechaDeEnvasado("12-15-2014");
    prodFresco.setHechoEn("Republica Dominicana");
   
    prodRefrigerado.setFechaDeExpiracion("10-15-2018");;
    prodRefrigerado.setNumDeLote(201412152200L);
    prodRefrigerado.setCodigoOSA("COSA-200018000");

    System.out.println(" Producto fresco:");
    prodFresco.verInfoProdFresco();
   
    System.out.println("\n Producto refrigerado:");
    prodRefrigerado.verInfoProdRefrigerado();
   
    System.out.println("\n Producto congelado:");
    prodCongelado.verInfoProdCongelado();
  }
}


public class Producto

Código: [Seleccionar]
package CU00686B;
public class Producto
{
  private String fechaDeExpiracion;
  private long numDeLote;
  //Constructor general
  public Producto()
  {
    fechaDeExpiracion = "00-00-0000";
    numDeLote = 0L;
  }
  //Constructor con parámetros
  public Producto(String fDExp, long numLot)
  {
    fechaDeExpiracion = fDExp;
    numDeLote = numLot;
  }
  //Setters
  public void setFechaDeExpiracion(String fechaDeExpiracion)
  {
    this.fechaDeExpiracion = fechaDeExpiracion;
  }
  public void setNumDeLote(long numDeLote)
  {
    this.numDeLote = numDeLote;
  }
  //Getters
  public String getFechaDeExpiracion()
  {
    return fechaDeExpiracion;
  }
  public long getNumDeLote()
  {
    return numDeLote;
  }
  //Otros métodos
  public void verInfoProducto()
  {
    System.out.println("Fecha de expiracion: " + fechaDeExpiracion + "\nNumero de lote: " + numDeLote);
  }
}


public class ProdFresco extends Producto

Código: [Seleccionar]
package CU00686B;
public class ProdFresco extends Producto
{
  private String fechaDeEnvasado, hechoEn;
  //Constructor general
  public ProdFresco()
  {
    super();
    fechaDeEnvasado = "00-00-0000";
    hechoEn = "UnKnown";
  }
  //Constructor con parámetros
  public ProdFresco(String fDExp, long numLot, String fDEnvas, String madeIn)
  {
    super(fDExp, numLot);
    fechaDeEnvasado = fDEnvas;
    hechoEn = madeIn;
  }
  //Setters
  public void setFechaDeEnvasado(String fechaDeEnvasado)
  {
    this.fechaDeEnvasado = fechaDeEnvasado;
  }
  public void setHechoEn(String hechoEn)
  {
    this.hechoEn = hechoEn;
  }
  //Getters
  public String getFechaDeEnvasado()
  {
    return fechaDeEnvasado;
  }
  public String getHechoEn()
  {
    return hechoEn;
  }
  //Otros metodos
  public void verInfoProdFresco()
  {
    verInfoProducto();
    System.out.println("Fecha de envasado: " + fechaDeEnvasado + "\nPais de origen: " + hechoEn);
  }
}


public class ProdRefrigerado extends Producto

Código: [Seleccionar]
package CU00686B;
public class ProdRefrigerado extends Producto
{
  private String codigoOSA;
  //Constructor general
  public ProdRefrigerado()
  {
    super();
    codigoOSA = "COSA-0000"; 
  }
  //Constructor con parámetros
  public ProdRefrigerado(String fDExp, long numLot, String cOSA)
  {
    super(fDExp, numLot);
    codigoOSA = cOSA; 
  }
  //setters
  public void setCodigoOSA(String codigoOSA)
  {
    this.codigoOSA = codigoOSA;
  }
  //Getters
  public String getCodigoOSA()
  {
    return codigoOSA;
  }
  //Otros métodos
  public void verInfoProdRefrigerado()
  {
    verInfoProducto();
    System.out.println("Codigo del organismo de supervision Alimentaria: " + codigoOSA);
  }
}


public class ProdCongelado extends Producto

Código: [Seleccionar]
package CU00686B;
public class ProdCongelado extends Producto
{
  private float tempDeCongRecomend;
  //Constructor general
  public ProdCongelado()
  {
    super();
    tempDeCongRecomend = 0.0F;
  }
  //Constructor con parametros
  public ProdCongelado(String fDExp, long numLot, float tDCR)
  {
    super(fDExp, numLot);
    tempDeCongRecomend = tDCR;
  }
  //Setters
  public void setTempDeCongRecomend(float tempDeCongRecomend)
  {
    this.tempDeCongRecomend = tempDeCongRecomend;
  }
  //Getters
  public float getTempDeCongRecomend()
  {
    return tempDeCongRecomend;
  }
  //Otros metodos
  public void verInfoProdCongelado()
  {
    verInfoProducto();
    System.out.println("Temperatura de congelacion recomendada: " + tempDeCongRecomend + " grados °C");
  }
}
Nota: Indicaciones a seguir para el correcto funcionamiento del código.
 1: Crear un package con nombre: CU00686B 2: Declarar las 5 anteriores clases dentro de dicho package y 3: ejecutar el método main de la clase TestHerencia2  :P
Saludos!
« Última modificación: 03 de Septiembre 2017, 12:06 por Alex Rodríguez »
while(estesVivo)
{
  aprende();
  ayuda();
  enseña();
}
if(mueres){teRecordaran();}

César Krall

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2078
  • No vales por lo que dices, sino por lo que haces
    • Ver Perfil
    • aprenderaprogramar.com
Re:Ejercicio! entrega CU00686B
« Respuesta #1 en: 25 de Agosto 2014, 17:53 »
Hola sniper, he revisado tu código y está perfecto. Hay una cosa que sí merecería ser mejorada relacionada con los métodos para mostrar información, pero lo verás tú mismo cuando llegues a la entrega CU00690, donde se explica la sobreescritura de métodos. Enhorabuena!
Responsable de departamento de producción aprenderaprogramar.com

 

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