Foros aprenderaprogramar.com

Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: Jorge lopez en 23 de Agosto 2014, 18:10

Título: Ejercicio constructores con herencia java implementar esquema herencia CU00686B#
Publicado por: Jorge lopez en 23 de Agosto 2014, 18:10
 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!
Título: Re:Ejercicio! entrega CU00686B
Publicado por: César Krall 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!