Autor Tema: Java ejercicio resuelto herencia extends super con clases intermedias CU00687B  (Leído 5227 veces)

Enzo

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 82
    • Ver Perfil
Buenas Tardes,

Aquí dejo la primera parte de mi ejercicio del tema "CU00687B ejercicio resuelto herencia extends super java tutorial programador" para su corrección.

Clase Producto:
Código: [Seleccionar]
// EJERCICIO DEL USO DE HERECIAS
// ----> CU00687B ejercicio resuelto herencia extends super java tutorial programador.pdf

package ejercicio_CU00687B;

/**
 * Esta Clase define una Superclase de la que "beberan" otras clases.<br>
 * Clase 1 del Ejercicio del Tema "CU00687B ejercicio resuelto herencia extends super java tutorial programador".
 * @author Lorenzo Fernández Asensio
 * @version 20151123.01
 */
public class Producto_CU00687B {

    // Inicialización de Atributos
    private String fechaEnvasado,
                    fechaCaducidad,
                    paisOrigen;
    private int numLote;

    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores
     * @param fechaEnvasado El parámetro fechaEnvasado define la Fecha de Envasado del Producto
     * @param fechaCaducidad El parámetro fechaCaducidad define la Fecha de Caducidad del Producto
     * @param numLote El parámetro numLote define el número del lote al que pertenece el Producto
     * @param paisOrigen El parámetro paisOrigen define el Pais de Origen del Producto
     */
    public Producto_CU00687B() {       
        fechaEnvasado = "";
        fechaCaducidad = "";
        numLote = 0;
        paisOrigen = "";
    } // Cierre del Constructor 1

    /**
     * Constructor 2 del Producto. Atribututos con asignación de Valores
     * @param fechaEnvasado El parámetro fechaEnvasado define la Fecha de Envasado del Producto
     * @param fechaCaducidad El parámetro fechaCaducidad define la Fecha de Caducidad del Producto
     * @param numLote El parámetro numLote define el número del lote al que pertenece el Producto
     * @param paisOrigen El parámetro paisOrigen define el Pais de Origen del Producto
     */
    public Producto_CU00687B(String fechaEnvasado, String fechaCaducidad, int numLote, String paisOrigen) {
        this.fechaEnvasado = fechaEnvasado;
        this.fechaCaducidad = fechaCaducidad;
        this.numLote = numLote;
        this.paisOrigen = paisOrigen;
    } // Cierre del Constructor 2

    /**
     * Método para establecer la Fecha de Envasado del Producto
     * @param valorFechaEnvasado El parámetro valorFechaEnvasado define el valor que contendrá la Fecha de Envasado
     */
    public void setFechaEnvasado(String valorFechaEnvasado) {
        fechaEnvasado = valorFechaEnvasado;
    } // Cierre del método para establecer la Fecha de Envasado
   
    /**
     * Método para establecer la Fecha de Caducidad del Producto
     * @param valorFechaCaducidad El parámetro valorFechaCaducidad define el valor que contendrá la Fecha de Caducidad
     */
    public void setFechaCaducidad(String valorFechaCaducidad) {
        fechaCaducidad = valorFechaCaducidad;
    } // Cierre del método para establecer la Fecha de Caducidad

    /**
     * Método para establecer el Número de Lote
     * @param valorNumLote El parámetro valorNumLote define el valor que contendrá el Número de Lote
     */
    public void setNumLote(int valorNumLote) {
        numLote = valorNumLote;
    } // Cierre del método para establecer la Fecha de Caducidad
   
    /**
     * Método para establecer el País de Origen del Producto
     * @param valorPaisOrigen El parámetro valorPaisOrigen define el valor que contendrá el País de Origen
     */
    public void setPaisOrigen(String valorPaisOrigen) {
        paisOrigen = valorPaisOrigen;
    } // Cierre del método para establecer el país de Origen
   
    /**
     * Método para para obtener la Fecha de Envasado del Producto
     * @return La Fecha de Envasado del Producto
     */
    public String getFechaEnvasado(){ return fechaEnvasado; }
   
    /**
     * Método para para obtener la Fecha de Caducidad del Producto
     * @return La Fecha de Caducidad del Producto
     */
    public String getFechaCaducidad(){ return fechaCaducidad; }

    /**
     * Método para para obtener el Número de Lote
     * @return El Número de Lote
     */
    public int getNumLote(){ return numLote; }
   
    /**
     * Método para para obtener el País de Origen del Producto
     * @return El País de Origen del Producto
     */
    public String getPaisOrigen(){ return paisOrigen; }
   
    /**
     * Método para mostrar por pantalla la Información
     */
    public void mostrarInfoProducto() {
        System.out.println ("Fecha de Envasado: " + getFechaEnvasado());
        System.out.println ("Fecha de Caducidad: " + getFechaCaducidad());
        System.out.println ("Nº de Lote: " + getNumLote());
        System.out.println ("País de Origen: " + getPaisOrigen());
    } // Cierre de la clase
   
} // Cierre de la Clase

Clase Producto Fresco:
Código: [Seleccionar]
// EJERCICIO DEL USO DE HERECIAS
// ----> CU00687B ejercicio resuelto herencia extends super java tutorial programador.pdf

package ejercicio_CU00687B;

/**
 * Esta Clase define una Subclase que "bebe" de la Superclase Producto_CU00687B.<br>
 * Clase 2 del Ejercicio del Tema "CU00687B ejercicio resuelto herencia extends super java tutorial programador".
 * @author Lorenzo Fernández Asensio
 * @version 20151123.01
 */
public class PtoFresco_CU00687B extends Producto_CU00687B {

    //No hay campos específicos de la subclase.

    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores.<br>
     * No hay parametros especificos de esta Subclase.
     */
    public PtoFresco_CU00687B () {
        super(); // Parametros del constructor de la Superclase. Siempre se incluyen
        // No hay parametros especificos de la Subclase
    } // Cierre del constructor 1

    /**
     * Constructor 2 del Producto. Atribututos con asignación de Valores
     * No hay parametros especificos de esta Subclase.
     */
    public PtoFresco_CU00687B (String fechaEnvasado, String fechaCaducidad, int numLote, String paisOrigen) {       
        super(fechaEnvasado, fechaCaducidad, numLote, paisOrigen);// Parametros del constructor de la Superclase. Siempre se incluyen
        // No hay parametros especificos de la Subclase
    } // Cierre del constructor 2

    /**
     * Método para mostrar por pantalla la Información
     */
    public void mostrarInfoPtoFresco() {
        // Se muestran los datos de la Superclase haciendo un llamamiento a su método para mostrarlos
        mostrarInfoProducto();
    } // Cierre de la clase

} // Cierre de la clase

Clase Producto No Fresco (Intermedia):
Código: [Seleccionar]
// EJERCICIO DEL USO DE HERECIAS
// ----> CU00687B ejercicio resuelto herencia extends super java tutorial programador.pdf

package ejercicio_CU00687B;

/**
 * Esta Clase define una Subclase intermedia que "bebe" de la Superclase Producto_CU00687B.<br>
 * Pero a su vez, "beberan" de ella otras clases.<br>
 * Clase 3 del Ejercicio del Tema "CU00687B ejercicio resuelto herencia extends super java tutorial programador".
 * @author Lorenzo Fernández Asensio
 * @version 20151123.01
 */
public class PtoNoFresco_CU00687B extends Producto_CU00687B {

    //Campos específicos de la subclase.
    private int tempMantRecom;

    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores
     * @param tempMantRecom El parámetro tempMantRecom define la Temperatura de Mantinimiento Recomendada del Producto
     */
    public PtoNoFresco_CU00687B () {
        super(); // Parametros del constructor de la Superclase. Siempre se incluyen
        // Parametros especificos de la Subclase
        tempMantRecom = 0;
    } // Cierre del constructor 1

    /**
     * Constructor 3 del Producto. Atribututos con asignación de Valores
     * @param tempMantRecom El parámetro tempMantRecom define la Temperatura de Mantinimiento Recomendada del Producto
     */
    public PtoNoFresco_CU00687B (String fechaEnvasado, String fechaCaducidad, int numLote, String paisOrigen, int tempMantRecom) {       
        super(fechaEnvasado, fechaCaducidad, numLote, paisOrigen);// Parametros del constructor de la Superclase. Siempre se incluyen
        // Parametros especificos de la Subclase
        this.tempMantRecom = tempMantRecom;
    } // Cierre del constructor 2

    // METODOS ESPECIFICOS DE LA SUBLASE
    /**
     * Método para establecer la Temperatura de Mantenimiento Recomendada
     * @param tempMantRecom El parámetro tempMantRecom define el valor que contendrá la Temperatura de Mantenimiento Recomendada
     */
    public void setTempMantRecom (int tempMantRecom) {
        this.tempMantRecom = tempMantRecom;
    } // Cierre del método para establecer el Pais de Origen
   
    /**
     * Método para para obtener la Temperatura de Mantenimiento Recomendada
     * @return La Temperatura de Mantenimiento Recomendada
     */
    public int getTempMantRecom() { return tempMantRecom;}
   
    /**
     * Método para mostrar por pantalla la Información
     */
    public void mostrarInfoPtoNoFresco() {
        // Se muestran los datos de la Superclase haciendo un llamamiento a su método para mostrarlos
        mostrarInfoProducto();
        // Se muestran los datos del atributo de la Subclase
        System.out.println ("Temperatura de Mantenimiento Recomendada: " + getTempMantRecom());
    } // Cierre de la clase

    } // Cierre de la clase

Clase Producto Refrigerado:
Código: [Seleccionar]
// EJERCICIO DEL USO DE HERECIAS
// ----> CU00687B ejercicio resuelto herencia extends super java tutorial programador.pdf

package ejercicio_CU00687B;

/**
 * Esta Clase define una Subclase que "bebe" de la Subclase intermedia PtoNoFresco_CU00687B.<br>
 * Clase 4 del Ejercicio del Tema "CU00687B ejercicio resuelto herencia extends super java tutorial programador".
 * @author Lorenzo Fernández Asensio
 * @version 20151123.01
 */
public class PtoRefrigerado_CU00687B extends PtoNoFresco_CU00687B {

    //Campos específicos de la subclase.
    private String codSupervAlimentaria;

    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores
     * @param codSupervAlimentaria El parámetro codSupervAlimentaria define el Código del Organismo de Supervisión Alimentaria
     */
    public PtoRefrigerado_CU00687B () {
        super(); // Parametros del constructor de la Superclase. Siempre se incluyen
        codSupervAlimentaria = ""; // Parametro especifico de la Subclase
    } // Cierre del constructor 1

    /**
     * Constructor 2 del Producto. Atribututos con asignación de Valores
     * @param codSupervAlimentaria El parámetro codSupervAlimentaria define el Código del Organismo de Supervisión Alimentaria
     */
    public PtoRefrigerado_CU00687B (String fechaEnvasado, String fechaCaducidad, int numLote, String paisOrigen, int tempMantRecom, String codSupervAlimentaria) {       
        super(fechaEnvasado, fechaCaducidad, numLote, paisOrigen, tempMantRecom); // Parametros del constructor de la Superclase. Siempre se incluyen
        this.codSupervAlimentaria = codSupervAlimentaria; // Parametro especifico de la Subclase
    } // Cierre del constructor 2

    // METODOS ESPECIFICOS DE LA SUBLASE
    /**
     * Método para establecer el Código del Organismo de Supervisión Alimentaria
     * @param codSupervAlimentaria El parámetro codSupervAlimentaria define el valor del Organismo de Supervisión Alimentaria
     */
    public void setCodSupervAlimentaria (String codSupervAlimentaria) {
        this.codSupervAlimentaria = codSupervAlimentaria;
    } // Cierre del método para establecer la Fecha de Envasado

    /**
     * Método para para obtener el Código del Organismo de Supervisión Alimentaria
     * @return El Código del Organismo de Supervisión Alimentaria
     */
    public String getCodSupervAlimentaria() { return codSupervAlimentaria; }

    /**
     * Método para mostrar por pantalla la Información
     */
    public void mostrarInfoRefrigerado() {
        // Se muestran los datos de la Superclase haciendo un llamamiento a su método para mostrarlos
        mostrarInfoPtoNoFresco();
        // Se muestran los datos del atributo de la Subclase
        System.out.println ("Código del Organismo de Supervisión Alimentaria: " + getCodSupervAlimentaria());

    } // Cierre de la clase

} // Cierre de la clase

Clase Producto Congelado (Intermedia. Actualmente se podría quitar pero la dejo en previsión de que los productos congelados lleguen a tener atributos comunes):
Código: [Seleccionar]
// EJERCICIO DEL USO DE HERECIAS
// ----> CU00687B ejercicio resuelto herencia extends super java tutorial programador.pdf

package ejercicio_CU00687B;

/**
 * Esta Clase define una Subclase intermedia que "bebe" de la Subclase intermedia PtoNoFresco_CU00687B.<br>
 * 2015-11-24: Actualmente no seria necesaria pero la dejo creada en previsión de que los Ptos. Congelados tengan atributos propios solo de esta clase.<br>
 *              Se usa el método para mostrar datos en pantalla.<br>
 * Clase 5 del Ejercicio del Tema "CU00687B ejercicio resuelto herencia extends super java tutorial programador".
 * @author Lorenzo Fernández Asensio
 * @version 20151123.01
 */
public class PtoCongelado_CU00687B extends PtoNoFresco_CU00687B {

    //No hay campos específicos de la subclase.

    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores.<br>
     * No hay parametros especificos de esta Subclase.
     */
    public PtoCongelado_CU00687B () {
        super(); // Parametros del constructor de la Superclase. Siempre se incluyen
        // No hay parametros especificos de la Subclase
    } // Cierre del constructor 1

    /**
     * Constructor 2 del Producto. Atribututos con asignación de Valores
     * No hay parametros especificos de esta Subclase.
     */
    public PtoCongelado_CU00687B (String fechaEnvasado, String fechaCaducidad, int numLote, String paisOrigen, int tempMantRecom) {       
        super(fechaEnvasado, fechaCaducidad, numLote, paisOrigen, tempMantRecom);// Parametros del constructor de la Superclase. Siempre se incluyen
        // No hay parametros especificos de la Subclase
    } // Cierre del constructor 2

    /**
     * Método para mostrar por pantalla la Información
     */
    public void mostrarInfoCongelado() {
        // Se muestran los datos de la Superclase haciendo un llamamiento a su método para mostrarlos
        mostrarInfoPtoNoFresco();
    } // Cierre de la clase

} // Cierre de la clase


Continua en "Parte 2 del Ejercicio CU00687B ejercicio resuelto herencia extends super java"
« Última modificación: 26 de Noviembre 2015, 09:23 por Mario R. Rancel »

Enzo

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 82
    • Ver Perfil
Re:Ejercicio CU00687B ejercicio resuelto herencia extends super java
« Respuesta #1 en: 24 de Noviembre 2015, 20:03 »
Aquí dejo la Parte 2 del Ejercicio CU00687B ejercicio resuelto herencia extends super java:

Clase Producto Congelado por Aire:
Código: [Seleccionar]
// EJERCICIO DEL USO DE HERECIAS
// ----> CU00687B ejercicio resuelto herencia extends super java tutorial programador.pdf

package ejercicio_CU00687B;

/**
 * Esta Clase define una Subclase que "bebe" de la Subclase intermedia PtoCongelado_CU00687B.<br>
 * Clase 6 del Ejercicio del Tema "CU00687B ejercicio resuelto herencia extends super java tutorial programador".
 * @author Lorenzo Fernández Asensio
 * @version 20151124.01
 */
public class PtoCongelAire_CU00687B extends PtoCongelado_CU00687B {

    //Campos específicos de la subclase.
    private int porcentNitro,
                porcentOxig,
                porcentDioxCarb,
                porcentVaporAgua;

    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores
     * @param porcentNitro El parámetro porcentNitro define el Porcentaje de Nitrógeno del Agua de la Congelación
     * @param porcentOxig El parámetro porcentOxig define el Porcentaje de Oxigeno del Agua de la Congelación
     * @param porcentDioxCarb El parámetro porcentDioxCarb define el Porcentaje de Dióxido de Carbono del Agua de la Congelación
     * @param porcentVaporAgua El parámetro porcentVaporAgua define el Porcentaje de Vapor de Agua del Agua de la Congelación
     */
    public PtoCongelAire_CU00687B () {
        super(); // Parametros del constructor de la Superclase. Siempre se incluyen
        // Parametros especificos de la Subclase
        porcentNitro = 0;
        porcentOxig = 0;
        porcentDioxCarb = 0;
        porcentVaporAgua = 0;
    } // Cierre del constructor 1

    /**
     * Constructor 2 del Producto. Atribututos con asignación de Valores
     * @param porcentNitro El parámetro porcentNitro define el Porcentaje de Nitrógeno del Agua de la Congelación
     * @param porcentOxig El parámetro porcentOxig define el Porcentaje de Oxigeno del Agua de la Congelación
     * @param porcentDioxCarb El parámetro porcentDioxCarb define el Porcentaje de Dióxido de Carbono del Agua de la Congelación
     * @param porcentVaporAgua El parámetro porcentVaporAgua define el Porcentaje de Vapor de Agua del Agua de la Congelación
     */
    public PtoCongelAire_CU00687B (String fechaEnvasado, String fechaCaducidad, int numLote, String paisOrigen, int tempMantRecom,
    int porcentNitro, int porcentOxig, int porcentDioxCarb, int porcentVaporAgua) {
        // Parametros del constructor de la Superclase. Siempre se incluyen
        super(fechaEnvasado, fechaCaducidad, numLote, paisOrigen, tempMantRecom);
        // Parametro especifico de la Subclase
        this.porcentNitro = porcentNitro;
        this.porcentOxig = porcentOxig;
        this.porcentDioxCarb = porcentDioxCarb;
        this.porcentVaporAgua = porcentVaporAgua;
    } // Cierre del constructor 2

    // METODOS ESPECIFICOS DE LA SUBLASE
    /**
     * Método para establecer el Porcentaje de Nitrógeno
     * @param porcentNitro El parámetro porcentNitro define el porcentNitro
     */
    public void setPorcentNitro (int porcentNitro) {
        this.porcentNitro = porcentNitro;
    } // Cierre del método para establecer el Porcentaje de Nitrógeno
   
    /**
     * Método para establecer el Porcentaje de Oxigeno
     * @param porcentOxig El parámetro porcentOxig define el Porcentaje de Oxigeno en la composición
     */
    public void setPorcentOxig (int porcentOxig) {
        this.porcentOxig = porcentOxig;
    } // Cierre del método para establecer el Porcentaje de Oxigeno
   
    /**
     * Método para establecer el Porcentaje de Dióxido de Carbono
     * @param porcentDioxCarb El parámetro porcentDioxCarb define el Porcentaje de Dióxido de Carbono en la composición
     */
    public void setPorcentDioxCarb (int porcentDioxCarb) {
        this.porcentDioxCarb = porcentDioxCarb;
    } // Cierre del método para establecer el Porcentaje de Dióxido de Carbono
   
    /**
     * Método para establecer el Porcentaje de Vapor de Agua
     * @param porcentVaporAgua El parámetro porcentVaporAgua define el Porcentaje de Vapor de Agua en la composición
     */
    public void setPorcentVaporAgua (int porcentVaporAgua) {
        this.porcentVaporAgua = porcentVaporAgua;
    } // Cierre del método para establecer el Porcentaje de Vapor de Agua
   
    /**
     * Método para para obtener el Porcentaje de Nitrógeno
     * @return El Porcentaje de Nitrógeno de la Composción
     */
    public int getPorcentNitro() { return porcentNitro; }
   
    /**
     * Método para para obtener el Porcentaje de Oxigeno
     * @return El Porcentaje de Oxigeno de la Composción
     */
    public int getPorcentOxig() { return porcentOxig; }
   
    /**
     * Método para para obtener el Porcentaje de Dióxido de Carbono
     * @return El Porcentaje de Dióxido de Carbono de la Composción
     */
    public int getPorcentDioxCarb() { return porcentDioxCarb; }
   
    /**
     * Método para para obtener el Porcentaje de Vapor de Agua
     * @return El Porcentaje de Vapor de Agua de la Composción
     */
    public int getPorcentVaporAgua() { return porcentVaporAgua; }
   
    /**
     * Método para mostrar por pantalla la Información
     */
    public void mostrarInforCongelAire() {
       
        // 1º Se muestran los datos de la Superclase haciendo un llamamiento a su método para mostrarlos
        mostrarInfoCongelado();
       
        // 2º Se muestran los datos de los atributos de la Subclase
        System.out.print ("La composición del aire con que fue congelado es: ");
        System.out.print (getPorcentNitro() + "% de Nitrógeno + ");
        System.out.print (getPorcentOxig() + "% de Oxigeno + ");
        System.out.print (getPorcentDioxCarb() + "% de Dióxido de Carbono + ");
        System.out.println (getPorcentVaporAgua() + "% de Vapor de Agua.");
       
    } // Cierre de la clase

} // Cierre de la clase

Clase Producto Congelado por Agua:
Código: [Seleccionar]
// EJERCICIO DEL USO DE HERECIAS
// ----> CU00687B ejercicio resuelto herencia extends super java tutorial programador.pdf

package ejercicio_CU00687B;

/**
 * Esta Clase define una Subclase que "bebe" de la Subclase intermedia PtoCongelado_CU00687B.<br>
 * Clase 7 del Ejercicio del Tema "CU00687B ejercicio resuelto herencia extends super java tutorial programador".
 * @author Lorenzo Fernández Asensio
 * @version 20151124.01
 */
public class PtoCongelAgua_CU00687B extends PtoCongelado_CU00687B {

    //Campos específicos de la subclase.
    private int salinidadAgua;

    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores
     * @param salinidadAgua El parámetro salinidadAgua define la salinidad del agua con que se realizó la<br>
     * congelación en gramos de sal por litro de agua.
     */
    public PtoCongelAgua_CU00687B () {
        super(); // Parametros del constructor de la Superclase. Siempre se incluyen
        // Parametros especificos de la Subclase
        salinidadAgua = 0;
    } // Cierre del constructor 1

    /**
     * Constructor 2 del Producto. Atribututos con asignación de Valores
     * @param salinidadAgua El parámetro salinidadAgua define la salinidad del agua con que se realizó la<br>
     * congelación en gramos de sal por litro de agua.
     */
    public PtoCongelAgua_CU00687B (String fechaEnvasado, String fechaCaducidad, int numLote, String paisOrigen, int tempMantRecom, int salinidadAgua) {
        // Parametros del constructor de la Superclase. Siempre se incluyen
        super(fechaEnvasado, fechaCaducidad, numLote, paisOrigen, tempMantRecom);
        // Parametro especifico de la Subclase
        this.salinidadAgua = salinidadAgua;
    } // Cierre del constructor 2

    // METODOS ESPECIFICOS DE LA SUBLASE
    /**
     * Método para establecer la salinidad del agua
     * @param salinidadAgua El parámetro salinidadAgua define la salinidad del agua
     */
    public void setSalinidadAgua (int salinidadAgua) {
        this.salinidadAgua = salinidadAgua;
    } // Cierre del método para establecer la salinidad del agua
   
    /**
     * Método para para obtener la salinidad del agua
     * @return La salinidad del agua con que se realizó la congelación en gramos de sal por litro de agua.
     */
    public int getSalinidadAgua() { return salinidadAgua; }
   
    /**
     * Método para mostrar por pantalla la Información
     */
    public void mostrarInforCongelAgua() {
       
        // 1º Se muestran los datos de la Superclase haciendo un llamamiento a su método para mostrarlos
        mostrarInfoCongelado();
       
        // 2º Se muestran los datos de los atributos de la Subclase
        System.out.println ("La salinidad del agua con que se realizó la congelación es de " + getSalinidadAgua() + " gramos de sal por litro de agua.");
       
    } // Cierre de la clase

} // Cierre de la clase

Clase Producto congelado por Nitrógeno:
Código: [Seleccionar]
// EJERCICIO DEL USO DE HERECIAS
// ----> CU00687B ejercicio resuelto herencia extends super java tutorial programador.pdf

package ejercicio_CU00687B;

/**
 * Esta Clase define una Subclase que "bebe" de la Subclase intermedia PtoCongelado_CU00687B.<br>
 * Clase 8 del Ejercicio del Tema "CU00687B ejercicio resuelto herencia extends super java tutorial programador".
 * @author Lorenzo Fernández Asensio
 * @version 20151124.01
 */
public class PtoCongelNitro_CU00687B extends PtoCongelado_CU00687B {

    //Campos específicos de la subclase.
    private String metodoCongelacion;
    private int tiempoExpoANitro;

    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores
     * @param metodoCongelacion El parámetro metodoCongelacion define el método de Congelación.
     * @param tiempoExpoANitro El parámetro tiempoExpoANitro define el Tiempo de exposición al Nitrogeno (En Segundos).
     */
    public PtoCongelNitro_CU00687B () {
        super(); // Parametros del constructor de la Superclase. Siempre se incluyen
        // Parametros especificos de la Subclase
        metodoCongelacion = "";
        tiempoExpoANitro = 0;
    } // Cierre del constructor 1

    /**
     * Constructor 2 del Producto. Atribututos con asignación de Valores
     * @param metodoCongelacion El parámetro metodoCongelacion define el método de Congelación.
     * @param tiempoExpoANitro El parámetro tiempoExpoANitro define el Tiempo de exposición al Nitrogeno (En Segundos).
     */
    public PtoCongelNitro_CU00687B (String fechaEnvasado, String fechaCaducidad, int numLote, String paisOrigen,
    int tempMantRecom, String metodoCongelacion, int tiempoExpoANitro) {
        // Parametros del constructor de la Superclase. Siempre se incluyen
        super(fechaEnvasado, fechaCaducidad, numLote, paisOrigen, tempMantRecom);
        // Parametro especifico de la Subclase
        this.metodoCongelacion = metodoCongelacion;
        this.tiempoExpoANitro = tiempoExpoANitro;
    } // Cierre del constructor 2

    // METODOS ESPECIFICOS DE LA SUBLASE
    /**
     * Método para establecer el método de Congelación
     * @param metodoCongelacion El parámetro metodoCongelacion define el Método de Congelación
     */
    public void setMetodoCongelacion (String metodoCongelacion) {
        this.metodoCongelacion = metodoCongelacion;
    } // Cierre del método para establecer el método de Congelación
   
    /**
     * Método para establecer el tiempo de Exposición al Nitrogeno (En Segundos)
     * @param tiempoExpoANitro El parámetro tiempoExpoANitro define en Segundos el tiempo de Exposición al Nitrogeno
     */
    public void setTiempoExpoANitro (int tiempoExpoANitro) {
        this.tiempoExpoANitro = tiempoExpoANitro;
    } // Cierre del método para establecer el tiempo de Exposición al Nitrogeno
   
    /**
     * Método para para obtener el  método de Congelación
     * @return El método de Congelación.
     */
    public String getMetodoCongelacion() { return metodoCongelacion; }
   
    /**
     * Método para para obtener el tiempo de Exposición al Nitrogeno
     * @return El tiempo, en segundos, de Exposición al Nitrogeno.
     */
    public int getTiempoExpoANitro() { return tiempoExpoANitro; }
   
    /**
     * Método para mostrar por pantalla la Información
     */
    public void mostrarInforCongelNitro() {
       
        // 1º Se muestran los datos de la Superclase haciendo un llamamiento a su método para mostrarlos
        mostrarInfoCongelado();
       
        // 2º Se muestran los datos de los atributos de la Subclase
        System.out.print ("Congelado por el método de " + getMetodoCongelacion());
        System.out.println (" en el Nitrogeno durante " + getTiempoExpoANitro() + " segundos.");
       
    } // Cierre de la clase

} // Cierre de la clase

Clase Test:
Código: [Seleccionar]
// EJERCICIO DEL USO DE HERECIAS
// ----> CU00687B ejercicio resuelto herencia extends super java tutorial programador.pdf

package ejercicio_CU00687B;

/**
 * Esta Clase define una clase test para probar Herencias.<br>
 * Se crean y se muestra la información de varios Productos
 * Clase 9 del Ejercicio del Tema "CU00687B ejercicio resuelto herencia extends super java tutorial programador".
 * @author Lorenzo Fernández Asensio
 * @version 20151124.01
 */
public class TestHerencia3_CU00687B {
   
    public static void main (String [ ] Args) {
       
        // CREACIÓN DE LOS OBJETOS ASIGNADO LOS ATRIBUTOS DE LA SUPERCLASE Producto_CU00687B + LOS SUYOS PROPIOS (Si los tienen)
        // Creación de 2 objetos de productos Frescos
        PtoFresco_CU00687B productoFresco1 = new PtoFresco_CU00687B ("23-11-2015", "21-5-2020", 55, "España");
        PtoFresco_CU00687B productoFresco2 = new PtoFresco_CU00687B ("8-4-2010", "8-4-2015", 31, "Malta");
        // Creación de 3 objetos de productos Refrigerados
        PtoRefrigerado_CU00687B productoRefrigerado1 = new PtoRefrigerado_CU00687B ("19-10-2014", "19-10-2025", 347, "EEUU", 10, "YK-358/91");
        PtoRefrigerado_CU00687B productoRefrigerado2 = new PtoRefrigerado_CU00687B ("15-7-1954", "19-10-1955", 2, "Japón", 12, "JP-003-75/4");
        PtoRefrigerado_CU00687B productoRefrigerado3 = new PtoRefrigerado_CU00687B ("1-1-2001", "11-11-2011", 11, "Argentina", 6, "AR-34/666");
        // Creación de 2 objetos de productos Congelados por Aire
        PtoCongelAire_CU00687B productoCongelAire1 = new PtoCongelAire_CU00687B ("3-6-2007", "3-6-2017", 38, "Groenlandia", -15, 25, 10, 15, 50);
        PtoCongelAire_CU00687B productoCongelAire2 = new PtoCongelAire_CU00687B ("7-1-1964", "7-1-2004", 1, "Suiza", -12, 13, 33, 24, 30);
        // Creación de 2 objetos de productos Congelados por Agua
        PtoCongelAgua_CU00687B productoCongelAgua1 = new PtoCongelAgua_CU00687B ("24-9-2003", "24-9-2023", 136, "Mexico", -10, 18);
        PtoCongelAgua_CU00687B productoCongelAgua2 = new PtoCongelAgua_CU00687B ("26-2-2010", "26-10-2035", 1047, "Alemania", -5, 26);
        // Creación de 2 objetos de productos Congelados por Nitrogeno
        PtoCongelNitro_CU00687B productoCongelNitro1 = new PtoCongelNitro_CU00687B ("24-12-2012", "24-12-2045", 666, "Italia", -10, "Inmersión", 150);
        // Se limpia la pantalla de la Consola
        System.out.println("\f");
       
        // Se muestra en pantalla la información de los productos
        System.out.println(">>>>>>>>>>>>>>>> PRODUCTOS FRESCOS <<<<<<<<<<<<<<<");
        System.out.println("PRODUCTO FRESCO 1");
        System.out.println("-----------------");
        productoFresco1.mostrarInfoPtoFresco(); // Llamada al método del PtoFresco para mostrar los datos
        System.out.println(""); // Se imprime línea en blanco de separación entre productos
        System.out.println("PRODUCTO FRESCO 2");
        System.out.println("-----------------");
        productoFresco2.mostrarInfoPtoFresco(); // Llamada al método del PtoFresco para mostrar los datos
        System.out.println(""); // Se imprime línea en blanco de separación entre productos
        System.out.println(""); // Se imprime otra línea en blanco de separación entre tipos de productos
       
        System.out.println(">>>>>>>>>>>>>>>> PRODUCTOS REFRIGERADOS <<<<<<<<<<<<<<<");
        System.out.println("PRODUCTO REFRIGERADO 1");
        System.out.println("----------------------");
        productoRefrigerado1.mostrarInfoRefrigerado();// Llamada al método del PtoRefigerado para mostrar los datos
        System.out.println(""); // Se imprime línea en blanco de separación entre productos
        System.out.println("PRODUCTO REFRIGERADO 2");
        System.out.println("---------------------");
        productoRefrigerado2.mostrarInfoRefrigerado();// Llamada al método del PtoRefigerado para mostrar los datos
        System.out.println(""); // Se imprime línea en blanco de separación entre productos
        System.out.println("PRODUCTO REFRIGERADO 3");
        System.out.println("---------------------");
        productoRefrigerado3.mostrarInfoRefrigerado();// Llamada al método del PtoRefigerado para mostrar los datos
        System.out.println(""); // Se imprime línea en blanco de separación entre productos
        System.out.println(""); // Se imprime otra línea en blanco de separación entre tipos de productos
       
        System.out.println(">>>>>>>>>>>>>>>> PRODUCTOS CONGELADOS <<<<<<<<<<<<<<<");
        System.out.println("PRODUCTO CONGELADO POR AIRE 1");
        System.out.println("-----------------------------");
        productoCongelAire1.mostrarInforCongelAire();// Llamada al método del PtoCongelAire para mostrar los datos
        System.out.println(""); // Se imprime línea en blanco de separación entre productos
        System.out.println("PRODUCTO CONGELADO POR AIRE 2");
        System.out.println("-----------------------------");
        productoCongelAire2.mostrarInforCongelAire();// Llamada al método del PtoCongelAire para mostrar los datos
        System.out.println(""); // Se imprime línea en blanco de separación entre productos
        System.out.println(""); // Se imprime otra línea en blanco de separación entre tipos de productos
       
        System.out.println("PRODUCTO CONGELADO POR AGUA 1");
        System.out.println("-----------------------------");
        productoCongelAgua1.mostrarInforCongelAgua();// Llamada al método del PtoCongelAire para mostrar los datos
        System.out.println(""); // Se imprime línea en blanco de separación entre productos
        System.out.println("PRODUCTO CONGELADO POR AGUA 2");
        System.out.println("-----------------------------");
        productoCongelAgua2.mostrarInforCongelAgua();// Llamada al método del PtoCongelAire para mostrar los datos
        System.out.println(""); // Se imprime línea en blanco de separación entre productos
        System.out.println(""); // Se imprime otra línea en blanco de separación entre tipos de productos
       
        System.out.println("PRODUCTO CONGELADO POR NITROGENO 1");
        System.out.println("----------------------------------");
        productoCongelNitro1.mostrarInforCongelNitro();// Llamada al método del PtoCongelAire para mostrar los datos
       
    } // Cierre del Main
       
} //Cierre de la clase

Espero vuestros Comentarios,

Un Saludo,

Mario R. Rancel

  • Administrador
  • Experto
  • ********
  • APR2.COM
  • Mensajes: 1978
    • Ver Perfil
Re:Ejercicio CU00687B ejercicio resuelto herencia extends super java
« Respuesta #2 en: 26 de Noviembre 2015, 09:22 »
Buenos días Enzo

En la clase Producto has agrupado correctamente algunos atributos que eran comunes a las subclases.

En los métodos para mostrar información estás reutilizando código invocando el código que ya has definido en la superclase, eso es correcto (más adelante en el curso se explican algunas cuestiones adicionales que permiten mejorar esto).

La clase ProductoNoFresco funciona como superclase intermedia que sirve para agrupar

La clase ProductoCongelado comentas que se podría quitar pero que es preferible dejarla por si en el futuro existieran atributos comunes. No sólo eso, es preferible dejarla porque así tenemos un diseño de clases más consistente. Si tenemos diseños consistentes eso será bueno para la programación (y hablará bien de nosotros si hemos sido los programadores).

En resumen tienes el código bien planteado, ordenado y comentado, bien!

Nota: más adelante en el curso se explica que podemos cambiar estas declaraciones

PtoFresco_CU00687B productoFresco1 = new PtoFresco_CU00687B ("23-11-2015", "21-5-2020", 55, "España");

Por declaraciones de este tipo:

Producto_CU00687B productoFresco1 = new PtoFresco_CU00687B ("23-11-2015", "21-5-2020", 55, "España");

Saludos

Enzo

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 82
    • Ver Perfil
Hola Mario,

Ok. Muchas gracias.

Un Saludo,

Cintia RC

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 1
    • Ver Perfil
hola tengo una duda cuando los datos son introducidos por teclado desde donde los pides desde tu superclase o tu subclase...??

Enzo

  • Principiante
  • **
  • APR2.COM
  • Mensajes: 82
    • Ver Perfil
Hola Cintia,

En principio este ejercicio no esta enfocado para pedir datos por teclado, pero si se quisieran pedir, se debería crear otra clase Para introducir datos.
Yo, según lo tengo hecho, introduzco los datos directamente en la clase Test.

Un Saludo,

 

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