Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - Enzo

Páginas: 1 2 [3] 4 5
41
Y aquí viene la segunda parte del resto de clases que no había puesto:

Clase Producto Congelado por Aire:
Código: [Seleccionar]
/**
 * EJERCICIO DEL USO DE HERECIAS Y POLIMORFISMO.<br>
 * Esta Clase define una Subclase que "bebe" de la Subclase intermedia PtoCongelado_CU00687B.<br>
 * Clase 6 Reutilizada 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 Y POLIMORFISMO.<br>
 * Esta Clase define una Subclase que "bebe" de la Subclase intermedia PtoCongelado_CU00687B.<br>
 * Clase 7 Reutilizada 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 Y POLIMORFISMO.<br>
 * Esta Clase define una Subclase que "bebe" de la Subclase intermedia PtoCongelado_CU00687B.<br>
 * Clase 8 Reutilizada 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

Y con esta he finalizado todas las clases que me faltaba. A continuación vendrían las que puse en el inicio.

Y respecto a mi pregunta: ¿A nadie (que tenga un nivel ¡claro!. No un "mindudi" como yo) se le a ocurrido hacer una especie de índice en el que ponga lo que hace cada método de cada clase? (Ya se que hay muchas). Sería algo como:
Hacer "Tal cosa"...........Método "tal"..........De "Tal" clase.
Y luego ya con eso vas directamente al API de java.
¿No crees que seria útil?.
Posiblemente os parezca una sandez pero a mi, que estoy "en pañales" (y no tengo ni idea de ingles) pienso que seria de gran ayuda a la hora de aprender.

Espero vuestros comentarios,

Muchas gracias,

Saludos.

42
Hola Alex,

Ok. Muchas Gracias.

Tienes toda la razón. Yo solo pensaba en el espacio que iba a ocupar sin darme cuenta de que así lo pongo mas difícil para la corrección. Perdona las molestias.

Aquí dejo la primera parte del resto de clases que no había puesto:

Clase Producto:
Código: [Seleccionar]
/**
 * EJERCICIO DEL USO DE HERECIAS Y POLIMORFISMO.<br>
 * Esta Clase define una Superclase de la que "beberan" otras clases.<br>
 * Clase 1 Reutilizada 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 Y POLIMORFISMO.<br>
 * Esta Clase define una Subclase que "bebe" de la Superclase Producto_CU00687B.<br>
 * Clase 2 Reutilizada 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:
Código: [Seleccionar]
/**
 * EJERCICIO DEL USO DE HERECIAS Y POLIMORFISMO.<br>
 * 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 Reutilizada 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 Y POLIMORFISMO.<br>
 * Esta Clase define una Subclase que "bebe" de la Subclase intermedia PtoNoFresco_CU00687B.<br>
 * Clase 4 Reutilizada 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:
Código: [Seleccionar]
/**
 * EJERCICIO DEL USO DE HERECIAS Y POLIMORFISMO.<br>
 * 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 Reutilizada 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

Sigue en Parte 2:

43
Hola, buenas tardes,

Aquí dejo mi ejercicio del tema "CU00690B sobreescritura metodos java estatico dinamico ligadura compilador" para su corrección, que he de reconocer que me ha vuelto un poco loco (no se si lo he cogido todo).

Citar
Supongamos la superclase Vehiculo que representa a cualquier tipo de vehículo y la subclase Taxi que representa a un tipo de vehículo concreto.
a) ¿Un objeto de tipo estático declarado Taxi puede contener a un objeto Vehiculo en tiempo de ejecución?
Si. Haciendo un enmascaramiento o "casting".

Citar
b) ¿Un objeto de tipo estático declarado Vehiculo puede contener a un objeto Taxi en tiempo de ejecución?
Si. Es la base de la Herencia ¿No?.

Citar
c) Escribe el código de una clase Vehiculo con los atributos matricula (String) y numeroDeRuedas (int), constructor, métodos getters y setters y método toString() para mostrar la información de un vehículo.
Código: [Seleccionar]
package ejercicio_CU00690B;

/**
 * EJERCICIO DE HERENCIAS Y MÉTODOS POLIMÓRFICOS.<br>
 * Esta Clase define una Superclase de la que "beberan" otras clases.<br>
 * Clase 1 del Ejercicio del Tema "CU00690B sobreescritura metodos java estatico dinamico ligadura compilador".
 * @author Lorenzo Fernández Asensio
 * @version 20151127.01
 */
public class Vehiculo_CU00690B {

    // Inicialización de Atributos
    private String matricula;
    private int numDeRuedas;

    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores
     * @param matricula El parámetro matricula define la Matricula de Vehiculo
     * @param numDeRuedas El parámetro numDeRuedas define el número de ruedas que tiene el Vehiculo
     */
    public Vehiculo_CU00690B() {       
        matricula = "";
        numDeRuedas = 0;
    } // Cierre del Constructor 1

    /**
     * Constructor 2 del Producto. Atribututos con asignación de Valores
     * @param matricula El parámetro matricula define la Matricula de Vehiculo
     * @param numDeRuedas El parámetro numDeRuedas define el número de ruedas que tiene el Vehiculo
     */
    public Vehiculo_CU00690B(String matricula, int numDeRuedas) {
        this.matricula = matricula;
        this.numDeRuedas = numDeRuedas;
    } // Cierre del Constructor 2

    /**
     * Método para establecer la Matricula de Vehiculo
     * @param valorMatricula El parámetro valorMatricula define el valor que contendrá la Matricula
     */
    public void setMatricula(String valorMatricula) {
        matricula = valorMatricula;
    } // Cierre del método para establecer la Matricula de Vehiculo

    /**
     * Método para establecer el Número de Ruedas del Vehiculo
     * @param valorNumDeRuedas El parámetro valorNumDeRuedas define el valor que contendrá el Número de Ruedas
     */
    public void setNumDeRuedas(int valorNumDeRuedas) {
        numDeRuedas = valorNumDeRuedas;
    } // Cierre del método para establecer el Número de Ruedas del Vehiculo

    /**
     * Método para para obtener la Matricula de Vehiculo
     * @return La Matricula de Vehiculo
     */
    public String getMatricula(){ return matricula; }

    /**
     * Método para para obtener el Número de Ruedas del Vehiculo
     * @return El Número de de Ruedas del Vehiculo
     */
    public int getNumDeRuedas(){ return numDeRuedas; }

    /**
     * Método para obtener la Información del Vehiculo
     */
    public String toString() {
        return "Matricula: " + matricula + "\n" + "Número de ruedas: " + numDeRuedas + "\n";
    } // Cierre de la clase

} // Cierre de la Clase

Citar
d) Escribe el código de una clase Taxi que herede de vehículo y que además de los atributos de Vehiculo lleve un atributo adicional nombreDelConductor (String) y numeroDePlazas (int), constructor, métodos getters y setters y método toString() para mostrar la información de un Taxi.
Código: [Seleccionar]
package ejercicio_CU00690B;

/**
 * EJERCICIO DEL USO DE HERECIAS Y MÉTODOS POLIMÓRFICOS.<br>
 * Esta Clase define una Subclase que "bebe" de la Superclase Vehiculo_CU00690B.<br>
 * Clase 2 del Ejercicio del Tema "CU00690B sobreescritura metodos java estatico dinamico ligadura compilador".
 * @author Lorenzo Fernández Asensio
 * @version 20151127.01
 */
public class Taxi_CU00690B extends Vehiculo_CU00690B {

    // Inicialización de Atributos
    private String nombreDelConductor;
    private int numDePlazas;

    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores
     * @param nombreDelConductor El parámetro nombreDelConductor define el Nombre Del Conductor del Taxi
     * @param numDePlazas El parámetro numDePlazas define el número de plazas que tiene el Taxi
     */
    public Taxi_CU00690B() {   
        super(); // Parametros del constructor de la Superclase. Siempre se incluyen
        // Parametros especificos de la Subcalse
        nombreDelConductor = "";
        numDePlazas = 0;
    } // Cierre del Constructor 1

    /**
     * Constructor 2 del Producto. Atribututos con asignación de Valores
     * @param nombreDelConductor El parámetro nombreDelConductor define el Nombre Del Conductor del Taxi
     * @param numDePlazas El parámetro numDePlazas define el número de plazas que tiene el Taxi
     */
    public Taxi_CU00690B(String matricula, int numDeRuedas, String nombreDelConductor, int numDePlazas) {
        super(matricula, numDeRuedas); // Parametros del constructor de la Superclase. Siempre se incluyen
        this.nombreDelConductor = nombreDelConductor;
        this.numDePlazas = numDePlazas;
    } // Cierre del Constructor 2

    /**
     * Método para establecer el Nombre Del Conductor  del Taxi
     * @param valorNombreDelConductor El parámetro valorNombreDelConductor define el valor que contendrá el Nombre Del Conductor del Taxi
     */
    public void setNombreDelConductor(String valorNombreDelConductor) {
        nombreDelConductor = valorNombreDelConductor;
    } // Cierre del método para establecer la NombreDelConductor de Vehiculo

    /**
     * Método para establecer el Número de plazas  del Taxi
     * @param valorNumDePlazas El parámetro valorNumDePlazas define el valor que contendrá el Número de plazas
     */
    public void setNumDePlazas(int valorNumDePlazas) {
        numDePlazas = valorNumDePlazas;
    } // Cierre del método para establecer el Número de plazas del Vehiculo

    /**
     * Método para para obtener el Nombre Del Conductor  del Taxi
     * @return El Nombre Del Conductor del Taxi
     */
    public String getNombreDelConductor(){ return nombreDelConductor; }

    /**
     * Método para para obtener el Número de plazas del Taxi
     * @return El Número de de Ruedas del Taxi
     */
    public int getNumDePlazas(){ return numDePlazas; }

    /**
     * Método para obtener la Información del Taxi
     */
    public String toString() {
        return super.toString() + "Nombre del Conductor: " + nombreDelConductor + "\n" + "Número de Plazas: " + numDePlazas + "\n";
    } // Cierre de la clase

} // Cierre de la Clase

Citar
e) Escribe el código de una clase test con el método main que cree un objeto cuyo tipo es Vehiculo, instanciado como Taxi. Establece valores para sus atributos y usa el método toString(). ¿Qué método toString() resulta de aplicación, el propio de la clase Vehiculo o el propio de la clase Taxi? ¿Por qué?
Código: [Seleccionar]
package ejercicio_CU00690B;

/**
 * EJERCICIO DEL USO DE HERECIAS Y MÉTODOS POLIMÓRFICOS.<br>
 * Esta Clase define una clase test para probar Herencias y Métodos Polimórficos.<br>
 * Se crea y se muestra la información de un Vehiculo instanciado como Taxi.
 * Clase 10 del Ejercicio del Tema "CU00690B sobreescritura metodos java estatico dinamico ligadura compilador".
 * @author Lorenzo Fernández Asensio
 * @version 20151127.01
 */
public class Test_CU00690B {
   
    public static void main (String [] args) {
       
        String matricula = "ROK-6665";
        int numDeRuedas = 4;
        String nombreDelConductor = "Bautista";
        int numDePlazas = 7;
       
        // Inicialización y Creación de un objeto tipo Vehiculo instanciado como Taxi
        Vehiculo_CU00690B taxiN1 = new Taxi_CU00690B(matricula,numDeRuedas,nombreDelConductor,numDePlazas);
       
        // Se limpia la pantalla de la Consola
        System.out.println("\f");
        // Se muestra en Pantalla Título dee comienzo
        System.out.println ("ATRIBUTOS DEL VEHICULO \"taxiN1\"");
        System.out.println ("-------------------------------");
        // Se muestra en Pantalla los atributos
        System.out.println (taxiN1.toString());
       
    } // Fin del main
   
} // Fin de la clase
Respuesta: Se ejecuta el método toString() del objeto Taxi porque, en tiempo de ejecución, el compilador busca el tipo que contiene el objeto y ejecuta sus métodos y solo si no los encuentra los busca el la clase padre.

Espero vuestras correcciones,

Muchas Gracias,

Saludos,

44
Buenos Días,

Antes de dejar el ejercicio tengo una duda que os puede parecer una tontería pero no se como solucionarla:

A ver si se explicarla: ¿Existe alguna forma de saber si hay alguna clase (o método) en el API de Java que haga lo que nosotros queremos conseguir, pero, que no sea mirando clase por clase?

Y ahora el ejercicio:
Como las clases de todos los tipos de producto son las mismas del ejercicio del Tema "CU00687B ejercicio resuelto herencia extends super java tutorial programador" no las vuelvo a poner para ahorrar espacio.

A continuación las dos clases nuevas de este Tema:

Clase EnvioDeProductos:
Código: [Seleccionar]
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;

/**
 * EJERCICIO DEL USO DE HERECIAS Y POLIMORFISMO.<br>
 * Esta Clase define una Subclase que "bebe" de la Superclase Producto_CU00687B para crear una Lista de Envio de Productos.<br>
 * Clase 9 del Ejercicio del Tema "CU00688B concepto polimorfismo java variables jerarquia tipos ejemplos".
 * @author Lorenzo Fernández Asensio
 * @version 20151125.01
 */
public class EnvioDeProductos_CU00688B {

    // Inicialización de la Colección
    private List <Producto_CU00687B> listadoEnvio;

    /**
     * Constructor de la Colección Lista de Envio.
     * @param listadoEnvio El parámetro listadoEnvio define la colección de la Lista de Envio de Productos
     */
    public EnvioDeProductos_CU00688B() {       
        // Creación de la Colección
        listadoEnvio = new ArrayList <Producto_CU00687B> ();
    } // Cierre del Constructor

    /**
     * Método para añadir un objeto a la Colección
     * @param productoNuevo El parámetro productoNuevo define el Producto que se añade a la Colección
     */
    public void incluirProductoALista (Producto_CU00687B productoNuevo) {
        listadoEnvio.add (productoNuevo);
    } //Cierre del método para añadir un objeto a la Colección
   
    /**
     * Método para para obtener el Número de Productos en la Lista de Envio
     * @return El Número de Productos en la Lista de Envio
     */
    public int getNumPtosEnLista(){ return listadoEnvio.size(); }

    /**
     * Método para mostrar por pantalla la Información usando Iterator
     */
    public void mostrarListaEnvioPtos() {
        Iterator <Producto_CU00687B> it = listadoEnvio.iterator();
        while(it.hasNext()){
            it.next().mostrarInfoProducto();
            System.out.println("");
        }

    } // Cierre de la clase

} // Cierre de la Clase

Clase Test Herencia4:
Código: [Seleccionar]
/**
 * EJERCICIO DEL USO DE HERECIAS Y POLIMORFISMO.<br>
 * Esta Clase define una clase test para probar Herencias y Polimorfismos.<br>
 * Se crean y se muestra la información de varios Productos
 * Clase 10 del Ejercicio del Tema "CU00688B concepto polimorfismo java variables jerarquia tipos ejemplos".
 * @author Lorenzo Fernández Asensio
 * @version 20151126.01
 */
public class TestHerencia4_CU00688B {
   
    public static void main (String [ ] Args) {
       
        // CREACIÓN DE LOS OBJETOS ASIGNADO LOS ATRIBUTOS DE LA SUPERCLASE Producto_CU00688B + LOS SUYOS PROPIOS (Si los tienen)
        // Creación de 2 objetos de productos Frescos
        Producto_CU00687B productoFresco1 = new PtoFresco_CU00687B ("23-11-2015", "21-5-2020", 55, "España");
        Producto_CU00687B productoFresco2 = new PtoFresco_CU00687B ("8-4-2010", "8-4-2015", 31, "Malta");
        // Creación de 3 objetos de productos Refrigerados
        Producto_CU00687B productoRefrigerado1 = new PtoRefrigerado_CU00687B ("19-10-2014", "19-10-2025", 347, "EEUU", 10, "YK-358/91");
        Producto_CU00687B productoRefrigerado2 = new PtoRefrigerado_CU00687B ("15-7-1954", "19-10-1955", 2, "Japón", 12, "JP-003-75/4");
        Producto_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
        Producto_CU00687B productoCongelAire1 = new PtoCongelAire_CU00687B ("3-6-2007", "3-6-2017", 38, "Groenlandia", -15, 25, 10, 15, 50);
        Producto_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
        Producto_CU00687B productoCongelAgua1 = new PtoCongelAgua_CU00687B ("24-9-2003", "24-9-2023", 136, "Mexico", -10, 18);
        Producto_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
        Producto_CU00687B productoCongelNitro1 = new PtoCongelNitro_CU00687B ("24-12-2012", "24-12-2045", 666, "Italia", -10, "Inmersión", 150);
       
        // Inicialización y Creación de un Objeto de la clase Envio de Productos
        EnvioDeProductos_CU00688B productosEnviados = new EnvioDeProductos_CU00688B();
       
        // Inicialización y Creación de una lista con los objetos de los Productos creados
        Producto_CU00687B [] listaPtosEnviados = {productoFresco1, productoFresco2, productoRefrigerado1, productoRefrigerado2, productoRefrigerado3,
            productoCongelAire1, productoCongelAire2, productoCongelAgua1, productoCongelAgua2, productoCongelNitro1};
       
        // Se añaden los datos de los productos creados en la colección de Envio
        for(Producto_CU00687B tmp:listaPtosEnviados){
            productosEnviados.incluirProductoALista(tmp);
        }
       
        // Se limpia la pantalla de la Consola
        System.out.println("\f");
        // Se muestra en pantalla un mensaje de Comienzo
        System.out.println("\t\tLISTADO DE LOS PRODUCTOS PERAPARADOS PARA SU ENVIO");
        System.out.println("\t\t--------------------------------------------------");
        System.out.println("");
        // Se muestra en pantalla un mensaje con el número de Productos incluidos en la Colección
        System.out.println("Envio compuesto por " + productosEnviados.getNumPtosEnLista() + " Productos");
        System.out.println("");
        System.out.println("DETALLE DEL ENVIO:");
        // Se muestra en pantalla la información de los Productos
        productosEnviados.mostrarListaEnvioPtos();
               
    } // Cierre del Main
       
} //Cierre de la clase

Espero vuestros comentarios,

Un Saludo,

45
Hola Mario,

Ok. Muchas gracias.

Un Saludo,

46
Hola Mario,

Haciendo el ejercicio del tema siguiente (CU00687B ejercicio resuelto herencia extends super java tutorial programador) me di cuenta de esto que me comentas y lo he cambiado. Lo subí ayer.
cuando tengas un rato, por favor, échale un vistazo a ver como lo ves.

La verdad es que esto es como cuando estas aprendiendo a conducir. Son tantas cosas de las que tienes que estar pendiente que siempre se escapa alguna. Espero que con el tiempo me salga todo mas natural.

Por eso es tanto de agradecer que haya gente como vosotros que esteis dispuestos a dedicar parte de vuestro tiempo para corregirnos en estos primeros pasos que estamos dando con Java.

Muchas gracias,

Un Saludo,

47
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,

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

49
Hola Lorenzo,

Muchas gracias,

Saludos,


50
Hola Mario,

OK. Lo tendre en cuenta.

Un Saludo,

51
Hola,

Aquí dejo mi ejercicio del temas "CU00686B tutorial ejemplo herencia java extends super constructores poo" para su corrección:

Superclase Producto:
Código: [Seleccionar]
// EJERCICIO DEL USO DE HERECIAS
// ----> CU00686B tutorial ejemplo herencia java extends super constructores poo.pdf

//Clase 1. Código de la Superclase Producto_CU00686B
/**
 * Esta Clase define una Superclase de la que "beberan" otras clases.<br>
 * Clase 1 del Ejercicio del Tema "CU00686B tutorial ejemplo herencia java extends super constructores poo".
 * @author Lorenzo Fernández Asensio
 * @version 20151120.01
 */
public class Producto_CU00686B {

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

    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores
     * @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
     */
    public Producto_CU00686B() {
        fechaCaducidad = "";
        numLote = 0;
    } // Cierre del Constructor 1

    /**
     * Constructor 2 del Producto. Atribututos con asignación de Valores
     * @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
     */
    public Producto_CU00686B(String fechaCaducidad, int numLote) {
        this.fechaCaducidad = fechaCaducidad;
        this.numLote = numLote;
    } // Cierre del Constructor 2

    /**
     * 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 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 mostrar por pantalla la Información
     */
    public void mostrarInformacion() {
        System.out.println ("PRODUCTO");
        System.out.println ("--------");
        System.out.println ("Fecha de Caducidad: " + getFechaCaducidad());
        System.out.println ("Nº de Lote: " + getNumLote());
    } // Cierre de la clase
   
} // Cierre de la Clase

Subclase Producto Fresco:
Código: [Seleccionar]
// EJERCICIO DEL USO DE HERECIAS
// ----> CU00686B tutorial ejemplo herencia java extends super constructores poo.pdf

// Clase 2. Código de la clase ProductoFresco, subclase de la clase Producto_CU00686B
/**
 * Esta Clase define una Subclase que "bebe" de la Superclase Producto_CU00686B.<br>
 * Clase 2 del Ejercicio del Tema "CU00686B tutorial ejemplo herencia java extends super constructores poo".
 * @author Lorenzo Fernández Asensio
 * @version 20151120.01
 */
public class ProductoFresco_CU00686B extends Producto_CU00686B {

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

    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores
     * @param fechaEnvasado El parámetro fechaEnvasadoad define la Fecha de Envasado del Producto
     * @param paisOrigen El parámetro paisOrigen define el País de Orignen del Producto
     */
    public ProductoFresco_CU00686B () {
        super(); // Parametros del constructor de la Superclase. Siempre se incluyen
        // Parametros especificos de la Subclase
        fechaEnvasado = "";
        paisOrigen = "";
    } // Cierre del constructor 1

    /**
     * Constructor 2 del Producto. Atribututos con asignación de Valores
     * @param fechaEnvasado El parámetro fechaEnvasadoad define la Fecha de Envasado del Producto
     * @param paisOrigen El parámetro paisOrigen define el País de Orignen del Producto
     */
    public ProductoFresco_CU00686B (String fechaCaducidad, int numLote, String fechaEnvasado, String paisOrigen) {       
        super(fechaCaducidad, numLote);// Parametros del constructor de la Superclase. Siempre se incluyen
        // Parametros especificos de la Subclase
        this.fechaEnvasado = fechaEnvasado;
        this.paisOrigen = paisOrigen;
    } // Cierre del constructor 2

    // METODOS ESPECIFICOS DE LA SUBLASE
    /**
     * Método para establecer la Fecha de Envasado
     * @param fechaEnvasado El parámetro fechaEnvasado define el valor que contendrá la Fecha de Envasado
     */
    public void setFechaEnvasado (String fechaEnvasado) {
        this.fechaEnvasado = fechaEnvasado;
    } // Cierre del método para establecer la Fecha de Envasado
   
    /**
     * Método para establecer el País de Origen
     * @param paisOrigen El parámetro paisOrigen define el valor que contendrá el País de Origen
     */
    public void setPaisOrigen (String paisOrigen) {
        this.paisOrigen = paisOrigen;
    } // Cierre del método para establecer el Pais de Origen
   
    /**
     * Método para para obtener la Fecha de Envasado
     * @return La Fecha de Fecha de Envasado del Producto
     */
    public String getFechaEnvasado() { return fechaEnvasado; }
   
    /**
     * Método para para obtener el País de Origen
     * @return El País de Origen del Producto
     */
    public String getPaisOrigen() { return paisOrigen; }
   
    /**
     * Método para mostrar por pantalla la Información
     */
    public void mostrarInformacion() {
       
        // Se muestran un Título
        System.out.println ("PRODUCTO FRESCO");
        System.out.println ("---------------");
        // Se muestran los datos de los métodos de la Superclase
        System.out.println ("Fecha de Caducidad: " + getFechaCaducidad());
        System.out.println ("Nº de Lote: " + getNumLote());
        // Se muestran los datos de los atributos de la Subclase
        System.out.println ("Fecha de Envasado: " + getFechaEnvasado());
        System.out.println ("Pais de Origen: " + getPaisOrigen());
       
    } // Cierre de la clase

} // Cierre de la clase

Subclase Producto Refrigerado
Código: [Seleccionar]
// EJERCICIO DEL USO DE HERECIAS
// ----> CU00686B tutorial ejemplo herencia java extends super constructores poo.pdf

// Clase 3. Código de la clase ProductoRefrigerado, subclase de la clase Producto_CU00686B
/**
 * Esta Clase define una Subclase que "bebe" de la Superclase Producto_CU00686B.<br>
 * Clase 3 del Ejercicio del Tema "CU00686B tutorial ejemplo herencia java extends super constructores poo".
 * @author Lorenzo Fernández Asensio
 * @version 20151120.01
 */
public class ProductoRefrigerado_CU00686B extends Producto_CU00686B {

    //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 ProductoRefrigerado_CU00686B () {
        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 ProductoRefrigerado_CU00686B (String fechaCaducidad, int numLote, String codSupervAlimentaria) {       
        super(fechaCaducidad, numLote); // 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 mostrarInformacion() {
       
        // Se muestran un Título
        System.out.println ("PRODUCTO REFRIGERADO");
        System.out.println ("--------------------");
        // Se muestran los datos de los métodos de la Superclase
        System.out.println ("Fecha de Caducidad: " + getFechaCaducidad());
        System.out.println ("Nº de Lote: " + getNumLote());
        // Se muestran los datos del atributo de la Subclase
        System.out.println ("Fecha de Envasado: " + getCodSupervAlimentaria());
       
    } // Cierre de la clase

} // Cierre de la clase

Subclase Producto Congelado
Código: [Seleccionar]
// EJERCICIO DEL USO DE HERECIAS
// ----> CU00686B tutorial ejemplo herencia java extends super constructores poo.pdf

// Clase 4. Código de la clase ProductoCongelado, subclase de la clase Producto_CU00686B
/**
 * Esta Clase define una Subclase que "bebe" de la Superclase Producto_CU00686B.<br>
 * Clase 4 del Ejercicio del Tema "CU00686B tutorial ejemplo herencia java extends super constructores poo".
 * @author Lorenzo Fernández Asensio
 * @version 20151120.01
 */
public class ProductoCongelado_CU00686B extends Producto_CU00686B {

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

    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores
     * @param tempCongelRecom El parámetro tempCongelRecom define la temperatura de congelación recomendada
     */
    public ProductoCongelado_CU00686B () {
        super(); // Parametros del constructor de la Superclase. Siempre se incluyen
        tempCongelRecom = 0; // Parametro especifico de la Subclase
    } // Cierre del constructor 1

    /**
     * Constructor 2 del Producto. Atribututos con asignación de Valores
     * @param codSupervAlimentaria El parámetro tempCongelRecom define la temperatura de congelación recomendada
     */
    public ProductoCongelado_CU00686B (String fechaCaducidad, int numLote, int tempCongelRecom) {       
        super(fechaCaducidad, numLote); // Parametros del constructor de la Superclase. Siempre se incluyen
        this.tempCongelRecom = tempCongelRecom; // Parametro especifico de la Subclase
    } // Cierre del constructor 2

    // METODOS ESPECIFICOS DE LA SUBLASE
    /**
     * Método para establecer la temperatura de congelación recomendada
     * @param tempCongelRecom El parámetro tempCongelRecom define valor de la temperatura de congelación recomendada
     */
    public void setTempCongelRecom (int tempCongelRecom) {
        this.tempCongelRecom = tempCongelRecom;
    } // Cierre del método para establecer la Fecha de Envasado
   
    /**
     * Método para para obtener la temperatura de congelación recomendada
     * @return La temperatura de congelación recomendada
     */
    public int getTempCongelRecom() { return tempCongelRecom; }
   
    /**
     * Método para mostrar por pantalla la Información
     */
    public void mostrarInformacion() {
       
        // Se muestran un Título
        System.out.println ("PRODUCTO CONGELADO");
        System.out.println ("------------------");
        // Se muestran los datos de los métodos de la Superclase
        System.out.println ("Fecha de Caducidad: " + getFechaCaducidad());
        System.out.println ("Nº de Lote: " + getNumLote());
        // Se muestran los datos del atributo de la Subclase
        System.out.println ("Temperatura de Congelación Recomendada: " + getTempCongelRecom());
       
    } // Cierre de la clase

} // Cierre de la clase

Clase Test
Código: [Seleccionar]
// EJERCICIO DEL USO DE HERECIAS
// ----> CU00686B tutorial ejemplo herencia java extends super constructores poo.pdf

// Clase 5. Código de la clase test
/**
 * Esta Clase define una clase test para probar Herencias.<br>
 * Clase 5 del Ejercicio del Tema "CU00686B tutorial ejemplo herencia java extends super constructores poo".
 * @author Lorenzo Fernández Asensio
 * @version 20151121.01
 */
public class TestHerencia2_CU00686B {
   
    public static void main (String [ ] Args) {
       
        // CREACIÓN DE LOS OBJETOS ASIGNADO LOS ATRIBUTOS DE LA SUPERCLASE Producto_CU00686B + LOS SUYOS PROPIOS
        // Creación del objeto de producto Fresco
        ProductoFresco_CU00686B productoFresco = new ProductoFresco_CU00686B ("21-5-2020", 55, "22-5-2015", "España");
        // Creación del objeto de producto Refrigerado
        ProductoRefrigerado_CU00686B productoRefrig = new ProductoRefrigerado_CU00686B ("19-10-2025", 347, "ES-358/91");
        // Creación del objeto de producto Congelado
        ProductoCongelado_CU00686B productoCongel = new ProductoCongelado_CU00686B ("3-6-2017", 38, -15);
       
        // Se limpia la pantalla de la Consola
        System.out.println("\f");
       
        // SE REALIZAN LLAMADAS A LOS MÉTODOS DE LAS SUBCLASES PARA MOSTRAR LOS DATOS EN PANTALLA
        productoFresco.mostrarInformacion();
        System.out.println(""); // Se imprime línea en blanco de separación entre productos
        productoRefrig.mostrarInformacion();
        System.out.println(""); // Se imprime línea en blanco de separación entre productos
        productoCongel.mostrarInformacion();
   
    } // Cierre del Main
       
} //Cierre de la clase

Espero vuestros comentarios,

Muchas Gracias,

Un Saludo,

52
Hola Mario,

Gracias por tus explicaciones. Lo que me preocupaba era que no hubiera entendido bien el ejercicio y tuviera que hacer algo con la variable Atrib.

Muchas gracias,

Un Saludo,

53
Hola,

Adjunto archivo con la imagen del esquema del ejercicio de tema "CU00684B que es herencia java programacion orientada objetos extends ejemplo" para su corrección.

Espero vuestros comentarios,

Muchas Gracias,

54
Hola Alex,

Tienes toda la razón. Eso me pasa por correr.
Es una línea que no debería estar. Esta ahí por las pruebas que estuve haciendo para tabular. Y se me olvido borrarla después. Lo siento.

Muchas Gracias,

Un Saludo,


55
Hola,

Aqui dejo mis respuestas al ejercicio del tema "CU00683B metodos static java de clase o de instancia diferencias metodo main" para su corrección:

Citar
Intenta compilar el siguiente código:
public class Test {
int atributo1;
Test (int atrib) {atributo1 = 0;}
public static void main (String[ ] Args) {
System.out.println ("Mensaje 1");
System.out.println ("Atributo 1 vale" + this.getAtrib1());
} //Cierre del main
public int getAtrib1() {return atributo1;}
} //Cierre de la clase
Citar
¿Qué mensaje de error se obtiene?
non-static variable this cannot be referenced from a static context
en la línea 6: System.out.println ("Atributo 1 vale" + this.getAtrib1());

Citar
¿Por qué se obtiene este mensaje de error?
1º. Línea 2: El Atributo "atributo1" no esta declarado como static
2º. Línea 6: No se debe usar this porque el método getAtrib1() esta fuera del método main
3º. Línea 8: El método getAtrib1() no esta declarado como static

Citar
¿Cómo podemos solucionarlo para que se ejecute lo que pretendemos?
He modificado las 3 líneas comentadas anteriormente:
Código: [Seleccionar]
/**
 * Clase con método Main. (Ejemplo de mala codificación y como hacerlo bien.<br>
 * CU00683B metodos static java de clase o de instancia diferencias metodo main.
 * @author Lorenzo Fernández Asensio
 * @version 20151118.01
 */
public class Test_CU00683B {
    static int atributo1;
   
    /**
     * Constructor para Inicializar Atributos.
     * @param atrib El parámetro atrib no se usa posteriormente.
     * @param atributo1 El parámetro atributo1 se inicializa a 0.
     */
    Test_CU00683B (int atrib) {atributo1 = 0;}
   
    /**
     * Método Main (Principal).<br>
     * Se encarga de coger el valor del atributo y dar un mensaje por pantalla.
     */
    public static void main (String[ ] Args) {
        System.out.println ("Mensaje 1");
        System.out.println ("Atributo 1 vale " + getAtrib1());
    } // Cierre del main
   
    /**
     * Método para obtener el valor de atributo1
     * @return el valor de atributo1
     */
    public static int getAtrib1() {return atributo1;}

} //Cierre de la clase

Lo que no tengo claro es para que se quiere la variable "atrib". Porque creo que solo la usaría si se creara un objeto pero luego no la utiliza para nada ¿no?.

Espero vuestros comentarios.

Muchas Gracias,

Un Saludo,

56
Hola Pedro,

OK. Ya lo he cambiado.

Al realizar el cambio me he dado cuenta de otro error que tenia:
Había puesto dos puntos [:] después de "@author" y "@version" y seguían sin verse en la documentación. Una vez que lo he quitado todo funciona perfectamente.

Muchas Gracias,

Un Saludo,

57
Hola,

Adjunto mi ejercicio del tema "CU00682B clases enum enumerado java ejercicio ejemplo resuelto metodo values" para su corrección:

Objeto de Tipo Enumerado:
Código: [Seleccionar]
// EJERCICIO DE UNA CLASE INDEPENDIENTE TIPO ENUMERADO
// ----> CU00682B clases enum enumerado java ejercicio ejemplo resuelto metodo values.pdf

/**
 * Ejercicio de una Clase tipo Enum (Tipo Enumerado)<br>
 * Contiene la definición de los enumerados, de los campos asociados a cada enumerado
 * y los tipos y valores de estos campos, constructor intrínseco y métodos para acceder a los campos.<br>
 * CU00682B clases enum enumerado java ejercicio ejemplo resuelto metodo values.pdf
 * @author Lorenzo Fernández Asensio
 * @version 20151117.01
 */

// Clase que contiene los tipos de piedra y su peso específico en kg/m3
public enum TipoDePiedraConDetal_CU00682B {
   
    CALIZA (1200f), //Separamos con comas
    MARMOL (1423.55f),
    PIZARRA(1325f),
    CUARZITA (1466.22f); //Cuando terminamos cerramos con ;
   
    //Campo tipo constante
    private final float pesoEspecifico; //Peso específico de la piedra
   
    /**
     * Constructor. Al asignarle uno de los valores posibles a una variable del tipo enumerado
     * el constructor asigna automáticamente valores del campo pesoEspecifico
     */
    TipoDePiedraConDetal_CU00682B (float pesoEspecifico) {
        this.pesoEspecifico = pesoEspecifico;
    } //Cierre del constructor
   
    //Método de la clase tipo Enum
    /**
     * Método para obtener el Peso Especifico del valor asignado
     * @return El Peso Especifico del valor asignado
     */
    public float getPesoEspecifico() { return pesoEspecifico; }
   
} //Cierre del enum

Test de Prueba:
Código: [Seleccionar]
// EJEMPLO DE TRABAJO CON UNA CLASE INDEPENDIENTE TIPO ENUMERADO CON DETALLE
// ----> CU00682B clases enum enumerado java ejercicio ejemplo resuelto metodo values.pdf

/**
 * Esta clase prueba una clase de tipo Enum con Detalle<br>
 * Usa la clase de tipo Enum y sus métodos.<br>
 * CU00682B clases enum enumerado java ejercicio ejemplo resuelto metodo values.pdf
 * @author Lorenzo Fernández Asensio
 * @version 20151117.01
 */
public class TestPiedraEnumConDetal_CU00682B {

    public static void main (String[ ] Args) {

        // Creación e Identificación de un Objeto Tipo Enumerado
        TipoDePiedraConDetal_CU00682B piedra = TipoDePiedraConDetal_CU00682B.MARMOL;

        // Inicialización de una variable con 2 Tabulaciones para hacer un listado
        String tabulador = "\t\t";

        // Se limpia la pantalla de la Consola
        System.out.println("\f");

        // Se muestra en pantalla un mensaje con el peso de los palets de cada uno de los tipos de piedra.
        System.out.println ("Un Palet admite 1.15 m3 de volumen. Relación del peso de los palets según las distintas piedras:");
        System.out.println ("PIEDRA"+ tabulador + "PESO DEL PALET");
        System.out.println ("------"+ tabulador + "--------------");

        // Bucle para mostrar el contenido de la clase Enum TipoDeMaderaConDetal_CU00682B
        for (TipoDePiedraConDetal_CU00682B tmp: TipoDePiedraConDetal_CU00682B.values() ) {

            // Se comprueba si el nombre de la piedra contiene mas de 7 caracteres
            if (tmp.toString().length() > 7){
                // Si el nombre contiene mas de 7 caracteres se pone solo una tabulación
                tabulador = "\t";
            } else {
                // Si el nombre contiene menos de 7 caracteres se ponen dos tabulaciones
                tabulador = "\t\t";
            } // Fin de la comprobación del nº de caracteres
           
            // Se muestra en pantalla la piedra y el peso del Palet
            System.out.print (tmp.toString() + tabulador + (1.15f*(float)tmp.getPesoEspecifico() ) + " kg");
            System.out.println (tmp.toString().length());
           
        } // Fin del bucle para mostrar las piedras y el peso del Palet

    } //Cierre del main

} //Cierre de la clase

Espero vuestros comentarios,

Muchas Gracias,

Saludos,

58
Hola,

Adjunto el ejercicio del tema "CU00681B ejemplo enum java tipos enumerados types must not be local" para su corrección:

Objeto Vehiculo:
Código: [Seleccionar]
// EJERCICIO DEL TIPO ENUMERADO
// ----> CU00681B ejemplo enum java tipos enumerados types must not be local.pdf

// clase 1. Objeto Vehículo con un tipo Enumerado con varias marcas.
/**
 * Esta clase define un Objeto Vehículo con un tipo Enumerado con varias marcas.<br>
 * Ejercicio del Tema "CU00681B ejemplo enum java tipos enumerados types must not be local"
 * @author: Lorenzo Fernández Asensio
 * @version: 20151116.01
 */

public class Vehiculo_CU00681B {

    // Declaración de un Tipo Enumerado
    enum MarcaDeVehiculo { FORD, TOYOTA, SUZUKI, RENAULT, SEAT };

    // Inicialización de Variables
    private String matricula; // matrícula (tipo String)
    private MarcaDeVehiculo marca; // marca (tipo MarcaDeVehículo)

    /**
     * Constructor del Vehículo
     * @param matricula El parámetro matricula define la Matrícula del Vehículo
     * @param marca El parámetro marca define la Marca del Vehículo
     */
    public Vehiculo_CU00681B () {
        matricula = "";
        marca = null;
    }//Cierre del constructor

    /**
     * Método para establecer la Matrícula del Vehículo
     * @param valorMatricula El parámetro valorMatricula define el valor que contendrá la matrícula del Vehículo
     */
    public void setMatricula (String valorMatricula) {
        matricula = valorMatricula;
    } //Cierre del método para establecer la matrícula del Vehículo

    /**
     * Método para establecer la Marca del Vehículo
     * @param valorMarca El parámetro valorMatricula define el valor que contendrá la Marca del Vehículo
     */
    public void setMarca (MarcaDeVehiculo valorMarca) {
        marca = valorMarca;
    } //Cierre del método para establecer la matrícula del Vehículo

    /**
     * Método para para obtener la Matrícula del Vehículo
     * @return La Matrícula del Vehículo
     */
    public String getMatricula(){ return matricula; }

    /**
     * Método para para obtener la Marca del Vehículo
     * @return La Marca del Vehículo
     */
        public MarcaDeVehiculo getMarca(){ return marca; }

} // Cierre de la clase

Test de Prueba:
Código: [Seleccionar]
// EJERCICIO DEL TIPO ENUMERADO
// ----> CU00681B ejemplo enum java tipos enumerados types must not be local.pdf

// clase 2. Test para crear Objeto Vehículo con un tipo Enumerado con varias marcas.
/**
 * Esta clase define un Test para probar el Objeto Vehiculo_CU00681B.<br>
 * Ejercicio del Tema "CU00681B ejemplo enum java tipos enumerados types must not be local"
 * @author: Lorenzo Fernández Asensio
 * @version: 20151116.01
 */
import java.util.Scanner; //Importación de la clase Scanner para intro valores por teclado

public class TestVehiculoTEnum_CU00681B {

    public static void main (String [ ] Args) {

        // Campos de la clase
        // Inicialización de una variable para contener la entrada por teclado
        String entradaTeclado = "";
        // Inicialización de una variable que controla si es correcta la marca introduccida
        boolean marcaIntroOK = false;

        // Se crea un objeto de la clase Vehículo_CU00681B
        Vehiculo_CU00681B vehiculoMain = new Vehiculo_CU00681B();

        //Creación deL objeto Scanner
        Scanner entradaEscaner = new Scanner (System.in);

        // Se limpia la pantalla de la Consola
        System.out.println("\f");
        // Se muestra en pantalla un mensaje de incio
        System.out.println("Hola. Comenzamos la creación de un Objeto de un Vehículo.");

        // Se Solicita la matrícula del Vehículo
        System.out.print("Introduzca la Matrícula del Vehiculo: ");
        // Invocación un método sobre un objeto Scanner para coger la matrícula introducida por teclado
        entradaTeclado = entradaEscaner.nextLine ();

        // Se realiza el llamamiento al método de la clase Vehiculo_CU00681B para recoger el valor de la Matrícula
        vehiculoMain.setMatricula(entradaTeclado);

        // Bucle que se repite miesntras marcaIntroOK = false. es decir, mientras no se introduzca una marca correcta
        do {
            // Se Solicita la marca del Vehículo
            System.out.print("Introduzca una de las siguientes Marcas de Vehiculo (Ford, Toyota, Suzuki, Renault, Seat): ");
            // Invocación un método sobre un objeto Scanner para coger la matrícula introducida por teclado
            entradaTeclado = entradaEscaner.nextLine ();

            // Comprobación de que marca se introduce
            // Y se realiza el llamamiento al método de la clase Vehiculo_CU00681B para recoger el valor de la Marca
            switch(entradaTeclado.toLowerCase()){
                case "ford":
                vehiculoMain.setMarca(Vehiculo_CU00681B.MarcaDeVehiculo.FORD);
                marcaIntroOK = true;
                break;
                case "toyota":
                vehiculoMain.setMarca(Vehiculo_CU00681B.MarcaDeVehiculo.TOYOTA);
                marcaIntroOK = true;
                break;
                case "suzuki":
                vehiculoMain.setMarca(Vehiculo_CU00681B.MarcaDeVehiculo.SUZUKI);
                marcaIntroOK = true;
                break;
                case "renault":
                vehiculoMain.setMarca(Vehiculo_CU00681B.MarcaDeVehiculo.RENAULT);
                marcaIntroOK = true;
                break;
                case "seat":
                vehiculoMain.setMarca(Vehiculo_CU00681B.MarcaDeVehiculo.SEAT);
                marcaIntroOK = true;
                break;
                default: System.out.println("ERROR EN LA INTRODUCCIÓN DE LA MARCA");
            }

        } while (marcaIntroOK == false);

        // Se muestran en pantalla los atributos del Objeto Vehículo
        System.out.println("Los Datos del Vehiculo son: ");
        System.out.println("Matrícula: " + vehiculoMain.getMatricula());
        System.out.println("Marca: " + vehiculoMain.getMarca());

    } // Fin del Main

} // Fin de la Clase

Y tengo una duda. Cuando genero la documentación del Test no me sale el comentario inicial. Por favor, ¿podríais decirme a que es debido?
Porque por mas vueltas que le he dado no encuentro la razón.

Espero vuestros comentarios,

Muchas Gracias,

Saludos,

59
Hola RaGa,

Muchas gracias,

Un Saludo,

60
Hola Ogramar,

Muchas Gracias,

Un Saludo,

Páginas: 1 2 [3] 4 5

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