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.


Temas - Enzo

Páginas: [1] 2
1
Hola,

Aquí dejo mi ejercicio del Tema "CU00697B para que sirven interfaces java implementar api ventaja ejemplo" para su corrección:

Clase InstalacionDeportiva:
Código: [Seleccionar]
/**
 * EJERCICIO DE HERENCIAS Y CLASES INTERFACES.<br>
 * Esta Clase define una clase Interface de la que "beberan" otras clases.<br>
 * Clase 1 del Ejercicio del Tema "CU00697B para que sirven interfaces java implementar api ventaja ejemplo".
 * @author Lorenzo Fernández Asensio
 * @version 20151211.01
 */
public interface InstalacionDeportiva_CU00697B {
    // No hay Atributos
   
    /**
     * Método (Por defecto abstract public) para obtener el Tipo de Instalación es
     */
    int getTipoDeInstalacion();
   
} //Cierre de la interface

Clase Edificio:
Código: [Seleccionar]
/**
 * EJERCICIO DE HERENCIAS Y CLASES INTERFACES.<br>
 * Esta Clase define una clase Interface de la que "beberan" otras clases.<br>
 * Clase 2 del Ejercicio del Tema "CU00697B para que sirven interfaces java implementar api ventaja ejemplo".
 * @author Lorenzo Fernández Asensio
 * @version 20151211.01
 */
public interface Edificio_CU00697B {
    // No hay Atributos
   
    /**
     * Método (Por defecto abstract public) para obtener la Superficie del Edificio
     */
    double getSuperficieEdificio();
   
} //Cierre de la interface

Clase Polideportivo:
Código: [Seleccionar]
/**
 * EJERCICIO DE HERENCIAS Y CLASES INTERFACES.<br>
 * Esta Clase define una Subclase que implementa las interfaces InstalacionDeportiva_CU00697B y Edificio_CU00697B.<br>
 * Clase 3 del Ejercicio del Tema "CU00697B para que sirven interfaces java implementar api ventaja ejemplo".
 * @author Lorenzo Fernández Asensio
 * @version 20151212.01
 */
public class Polideportivo_CU00697B implements InstalacionDeportiva_CU00697B, Edificio_CU00697B {

    // Inicialización de Atributos
    private String nombre;
    private double superficie;
    private int tipoInstalacion;

    /**
     * Constructor 1 del Polideportivo - Atribututos solo con asignación del Valor del Tipo de Instalación
     * @param nombre El parámetro nombre define el Nombre del Polideportivo
     * @param superficie El parámetro superficie define la Superficie del Polideportivo
     * @param tipoInstalacion El parámetro tipoInstalacion define Polideportivo como Tipo de Instalación 1
     */
    public Polideportivo_CU00697B () {
        nombre = "";
        superficie = 0;
        tipoInstalacion = 1; // Polideportivo es un Tipo de Instalación 1
    } // Cierre del Constructor 1

    /**
     * Constructor 2 del Polideportivo - Atribututos con asignación de Valores
     * @param nombre El parámetro nombre define el Nombre del Polideportivo
     * @param superficie El parámetro superficie define la Superficie del Polideportivo
     * @param tipoInstalacion El parámetro tipoInstalacion define Polideportivo como Tipo de Instalación 1
     */
    public Polideportivo_CU00697B (String nombre, double superficie) {
        this.nombre = nombre;
        this.superficie = superficie;
        tipoInstalacion = 1; // Polideportivo es un Tipo de Instalación 1
    } // Cierre del Constructor 2

    /**
     * Método para establecer el Nombre del Polideportivo
     * @param nombre El parámetro nombre define el Nombre del Polideportivo
     */
    public void setNombre (String nombre) {
        this.nombre = nombre;
    } // Cierre del método para establecer el Nombre del Polideportivo

    /**
     * Método para establecer la Superficie del Polideportivo
     * @param superficie El parámetro superficie define la Superficie del Polideportivo
     */
    public void setSuperficie (double superficie) {
        this.superficie = superficie;
    } // Cierre del método para establecer la Superficie del Polideportivo

    /**
     * Método para obtener el Nombre del Polideportivo
     * @return El Nombre del Polideportivo
     */
    public String getNombre() {
        return nombre;
    } // Cierre del método para ver que Tipo de Instalación es

    /**
     * Método para obtener la Superficie del Polideportivo (Sobreescrito de la interface Edificio)
     * @return La Superficie del Edificio
     */
    public double getSuperficieEdificio() {
        return superficie;
    } // Cierre del método para ver que Tipo de Instalación es

    /**
     * Método para obtener el Tipo de Instalación es el Polideportivo (Sobreescrito de la interface InstalacionDeportiva)
     * @return El Tipo de Instalación que es
     */
    public int getTipoDeInstalacion() {
        return tipoInstalacion;
    } // Cierre del método para ver que Tipo de Instalación es

    /**
     * Método para obtener los Datos del Polideportivo
     * @return Los Datos del Polideportivo
     */
    public String toString(){
        // Se transforman superficie para poder aplicarle el método toString().
        Double datoSuperficie = superficie;
        /* Se transforman tipoInstalacion en Integer para poder aplicarle el método toString().
         * De otra manera no se" puede hacer por ser de tipo primitivo.*/
        Integer datoTipoInstalacion = tipoInstalacion;
        // Se devuelve uns String con los datos del Polideportivo
        return "EDIFICIO DE TIPO ".concat(datoTipoInstalacion.toString()).concat(" = POLIDEPORTIVO.\n\t- Nombre del polideportivo: ").concat(nombre)
        .concat("\n\t- Con una Superficie de: ").concat(datoSuperficie.toString()).concat(" m2.\n");
    }

} //Cierre de la clase

Clase EdificioDeOficinas:
Código: [Seleccionar]
/**
 * EJERCICIO DE HERENCIAS Y CLASES INTERFACES.<br>
 * Esta Clase define una Subclase que implementa la interfaces Edificio_CU00697B.<br>
 * Clase 4 del Ejercicio del Tema "CU00697B para que sirven interfaces java implementar api ventaja ejemplo".
 * @author Lorenzo Fernández Asensio
 * @version 20151212.01
 */
public class EdificioDeOficinas_CU00697B implements Edificio_CU00697B {

    // Inicialización de Atributos
    private double superficie;
    private int numDeOficinas;

    /**
     * Constructor 1 del Edificio De Oficinas - Atribututos sin asignación del Valores
     * @param superficie El parámetro superficie define la Superficie del EdificioDeOficinas
     * @param numDeOficinas El parámetro numDeOficinas define el Número de Oficinas que tiene el Edificio
     */
    public EdificioDeOficinas_CU00697B () {
        superficie = 0;
        numDeOficinas = 0;
    } // Cierre del Constructor 1

    /**
     * Constructor 2 del EdificioDeOficinas - Atribututos con asignación de Valores
     * @param superficie El parámetro superficie define la Superficie del EdificioDeOficinas
     * @param numDeOficinas El parámetro numDeOficinas define el Número de Oficinas que tiene el Edificio
     */
    public EdificioDeOficinas_CU00697B (double superficie, int numDeOficinas) {
        this.superficie = superficie;
        this.numDeOficinas = numDeOficinas;
    } // Cierre del Constructor 2

    /**
     * Método para establecer la Superficie del EdificioDeOficinas
     * @param superficie El parámetro superficie define la Superficie del EdificioDeOficinas
     */
    public void setSuperficie (double superficie) {
        this.superficie = superficie;
    } // Cierre del método para establecer la Superficie del Edificio De Oficinas
   
    /**
     * Método para establecer el Número de Oficinas que tiene el Edificio
     * @param numDeOficinas El parámetro numDeOficinas define el Número de Oficinas que tiene el Edificio
     */
    public void setNumDeOficinas (int numDeOficinas) {
        this.numDeOficinas = numDeOficinas;
    } // Cierre del método para establecer el Número de Oficinas que tiene el Edificio
   
    /**
     * Método para obtener la Superficie del Edificio de Oficinas (Sobreescrito de la interface Edificio)
     * @return La Superficie del Edificio
     */
    public double getSuperficieEdificio() {
        return superficie;
    } // Cierre del método para ver que Tipo de Instalación es
   
    /**
     * Método para obtener el Número de Oficinas que tiene el Edificio
     * @return El Número de Oficinas que tiene el Edificio
     */
    public int getNumDeOficinas() {
        return numDeOficinas;
    } // Cierre del método para ver el Número de Oficinas que tiene el Edificio

    /**
     * Método para obtener los Datos del Edificio De Oficinas
     * @return Los Datos del EdificioDeOficinas
     */
    public String toString(){
        // Se transforman superficie para poder aplicarle el método toString().
        Double datoSuperficie = superficie;
        /* Se transforman numDeOficinas en Integer para poder aplicarle el método toString().
         * De otra manera no se puede hacer por ser de tipo primitivo.*/
        Integer datoNumDeOficinas = numDeOficinas;
        // Se devuelve uns String con los datos del EdificioDeOficinas
        return "EDIFICIO DE TIPO OFICINAS.\n\t- Con ".concat(datoNumDeOficinas.toString()).concat(" Oficinas")
        .concat("\n\t- Con una Superficie Total de: ").concat(datoSuperficie.toString()).concat(" m2.\n");
    }

} //Cierre de la clase

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

/**
 * EJERCICIO DE HERENCIAS Y CLASES ITERFACES.<br>
 * Esta Clase define una clase test para probar Herencias y Clases Interfaces.<br>
 * Clase 5 del Ejercicio del Tema "CU00697B para que sirven interfaces java implementar api ventaja ejemplo".
 * @author Lorenzo Fernández Asensio
 * @version 20151212.01
 */
public class Test2Interface_CU00697B {

    public static void main (String [ ] Args) {

        // Creación de una colección de Tipo Edificio que aceptara objetos polideportivo y Edificio de Oficinas
        ArrayList<Edificio_CU00697B> listaEdificios = new ArrayList<Edificio_CU00697B>();

        // Se añaden a la lista de Edificios 3 Polideportivos
        listaEdificios.add (new Polideportivo_CU00697B ("Miguel Ángel López", 34556.89));
        listaEdificios.add (new Polideportivo_CU00697B ("Ruth Beitia", 66477.12));
        listaEdificios.add (new Polideportivo_CU00697B ("Eusebio Cáceres", 46333.97));

        // Se añaden a la lista de Edificios 2 Edificios de Oficinas
        listaEdificios.add (new EdificioDeOficinas_CU00697B (85746.16, 35));
        listaEdificios.add (new EdificioDeOficinas_CU00697B (74663.67, 20));
       
        // Se crea un objeto de tipo Iterator
        Iterator<Edificio_CU00697B> it = listaEdificios.iterator();
       
        // Se limpia la pantalla de la Consola
        System.out.println("\f");
       
        // Se recorre la colección para mostrar los atributos de cada elemento
        while (it.hasNext()){
            System.out.println(it.next().toString());
        }

    } // Cierre del main
   
} // Cierre de la clase

Y la Respuesta a la Pregunta:
Citar
¿Entre qué clases existe una relación que se asemeja a la herencia múltiple?
Entre la clase Polideportivo con las clases InstalacionDeportiva y Edificio.

Espero vuestros comentarios,

Muchas Gracias,

Saludos,


2
Hola,

Aquí contesto a las preguntas del ejercicio del Tema "CU00696B concepto interface java herencia multiple ejemplo diagrama de clase":

Citar
a) ¿Una clase puede heredar de dos clases en Java?
Si. Haciendo uso de las clase interface

Citar
b) ¿Una interface Java puede tener métodos que incluyan una sentencia while? ¿Una interface Java puede tener métodos que incluyan una sentencia System.out.println?
Una interface no puede tener métodos que tengan cuerpo porque todos los métodos de estas clases deben ser abstractos.

Citar
c) ¿Un objeto Java puede ser del tipo definido por una interface? ¿Un objeto Java puede ser al mismo tiempo del tipo definido por una interface y del tipo definido por una clase que no implementa la interface? ¿Un objeto Java puede ser al mismo tiempo del tipo definido por una interface y del tipo definido por una clase que implementa la interface?
No. No se puede crear un objeto del tipo definido por una interfaz.

Espero vuestros comentarios,

Un Saludo,

3
Hola,

Aquí dejo mi ejercicio del Tema "CU00695B clases abstractas java métodos abstract class api ejemplo ejercicio" para su corrección:

Superclase Persona:
Código: [Seleccionar]
/**
 * EJERCICIO DE HERENCIAS + CLASES Y MÉTODOS ABSTRACTOS.<br>
 * Esta Clase define una Superclase de la que "beberan" otras clases.<br>
 * Clase 1 del Ejercicio del Tema "CU00695B clases abstractas java metodos abstract class api ejemplo ejercicio".
 * @author Lorenzo Fernández Asensio
 * @version 20151209.01
 */
public class Persona_CU00695B {

    // Inicialización de Atributos
    private String nombre;
    private String apellidos;
    private int edad;

    /**
     * Constructor 1 del Producto - Atribututos sin asignación de Valores
     * @param nombre El parámetro nombre define el Nombre de la Persona
     * @param apellidos El parámetro apellidos define los Apellidos de la Persona
     * @param edad El parámetro edad define la edad de la Persona
     */
    public Persona_CU00695B() {
        nombre = "";
        apellidos = "";
        edad = 0;
    } // Cierre del constructor 1

    /**
     * Constructor 2 del Producto - Atribututos con asignación de Valores
     * @param nombre El parámetro nombre define el Nombre de la Persona
     * @param apellidos El parámetro apellidos define los Apellidos de la Persona
     * @param edad El parámetro edad define la edad de la Persona
     */
    public Persona_CU00695B (String nombre, String apellidos, int edad) {
        this.nombre = nombre;
        this.apellidos = apellidos;
        this.edad = edad;
    } // Cierre del constructor 2

    /**
     * Método para para obtener la Nombre de la Persona
     * @return El Nombre de la Persona
     */
    public String getNombre() {return nombre;}

    /**
     * Método para para obtener los Apellidos de la Persona
     * @return Los Apellidos de la Persona
     */
    public String getApellidos() {return apellidos;}

    /**
     * Método para para obtener la Edad de la Persona
     * @return La Edad de la Persona
     */
    public int getEdad() {return edad;}

    /**
     * Método para para obtener los datos de la Persona
     * @return Los datos de la Persona
     */
    public String toString() {
        /* Se transforma edad en un Integer para poder aplicarle el método toString().
         * De otra manera no se puede hacer por ser edad un tipo primitivo.*/
        Integer datoEdad = edad;
        // Se devuelve uns String con los datos de la Persona
        return "- ".concat(nombre).concat(" ").concat(apellidos)
        .concat(" de ").concat(datoEdad.toString().concat(" años,") );
    } // Cierre del método para para obtener los datos de la Persona
   
} //Cierre de la clase

Subclase Abstracta Legislador:
Código: [Seleccionar]
/**
 * EJERCICIO DE HERENCIAS + CLASES Y MÉTODOS ABSTRACTOS.<br>
 * Esta Clase define una Subclase Abstracta que "bebe" de la Superclase Persona_CU00695B.<br>
 * Clase 2 del Ejercicio del Tema "CU00695B clases abstractas java metodos abstract class api ejemplo ejercicio".
 * @author Lorenzo Fernández Asensio
 * @version 20151209.01
 */
public abstract class Legislador_CU00695B extends Persona_CU00695B {

    // Campos específicos de la subclase.
    private String provinciaQueRepresenta,
                    idLegislador;
    int antiguedad;

    /**
     * Constructor 1 del Profesor - Atribututos sin asignación de Valores
     * @param provinciaQueRepresenta El parámetro provinciaQueRepresenta define la Provincia a la que representa el Legislador
     * @param idLegislador El parámetro idLegislador define el Cod. Identificativo del Legislador
     * @param antiguedad El parámetro antiguedad define los años de antiguedad del Legislador
     */
    public Legislador_CU00695B () {
        super();
        provinciaQueRepresenta = "";
        idLegislador = "";
        antiguedad = 0;
    } // Cierre del constructor 1

    /**
     * Constructor 2 del Profesor - Atribututos con asignación de Valores
     * @param provinciaQueRepresenta El parámetro provinciaQueRepresenta define la Provincia a la que representa el Legislador
     * @param idLegislador El parámetro idLegislador define el Cod. Identificativo del Legislador
     * @param antiguedad El parámetro antiguedad define los años de antiguedad del Legislador
     */
    public Legislador_CU00695B (String nombre, String apellidos, int edad, String provinciaQueRepresenta,String idLegislador, int antiguedad) {
        super(nombre, apellidos, edad);
        this.provinciaQueRepresenta = provinciaQueRepresenta;
        this.idLegislador = idLegislador;
        this.antiguedad = antiguedad;
    } // Cierre del constructor 2

    // METODOS ESPECIFICOS DE LA SUBLASE
    /** Método para establecer la Provincia Que Representa el Legislador
     * @param provinciaQueRepresenta El parámetro provinciaQueRepresenta define el valor que contendrá la Provincia Que Representa el Legislador
     */
    public void setProvinciaQueRepresenta (String provinciaQueRepresenta) {this.provinciaQueRepresenta = provinciaQueRepresenta;}
   
    /** Método para establecer el id del Legislador
     * @param idLegislador El parámetro idLegislador define el valor que contendrá el Cod. Identificativo del Legislador
     */
    public void setIdLegislador (String idLegislador) {this.idLegislador = idLegislador;}
   
    /** Método para establecer la Antiguedad del Legislador
     * @param antiguedad El parámetro antiguedad define el valor que contendrá la Antiguedad del Legislador
     */
    public void setAntiguedad (int antiguedad) {this.antiguedad = antiguedad;}
   
    /** Método para obtener la Provincia Que Representa el Legislador
     * @return La provincia a la que representa el Legislador
     */
    public String getProvinciaQueRepresenta() {return provinciaQueRepresenta;}
   
    /** Método para obtener el id del Legislador
     * @return El Código Identificativo del Legislador
     */
    public String getIdLegislador() {return idLegislador;}
   
    /** Método para obtener la Antiguedad del Legislador
     * @return La antiguedad del Legislador
     */
    public int getAntiguedad() {return antiguedad;}
   
    /**
     * Método Abstracto para la camara en la que trabaja el Legislador
     */
    // Método abstracto (definido como abstract y sin cuerpo)
    abstract public String getCamaraEnQueTrabaja();
   
    /**
     * Método para para obtener los datos del Legislador
     * @return Los datos del Legislador
     */
    public String toString () {
        /* Se transforma antiguedad en un Integer para poder aplicarle el método toString().
         * De otra manera no se puede hacer por ser antiguedad un tipo primitivo.*/
        Integer datoAntiguedad = antiguedad;
        // Se devuelve uns String con los datos de Persona + los de Legislador
        return super.toString().concat(" con Cod. identificativo ").concat(idLegislador)
        .concat(" y con ").concat(datoAntiguedad.toString().concat(" años representando a la Provincia de ").concat(provinciaQueRepresenta));
    }// Cierre del método para obtener los datos del Profesor

} //Cierre de la clase

Subclase Diputado:
Código: [Seleccionar]
/**
 * EJERCICIO DE HERENCIAS + CLASES Y MÉTODOS ABSTRACTOS.<br>
 * Esta Clase define una Subclase que "bebe" de la Superclase Legislador_CU00695B.<br>
 * Clase 3 del Ejercicio del Tema "CU00695B clases abstractas java metodos abstract class api ejemplo ejercicio".
 * @author Lorenzo Fernández Asensio
 * @version 20151209.01
 */
public class Diputado_CU00695B extends Legislador_CU00695B {
   
    // No hay campos específicos de la subclase.
   
    /**
     * Constructor 1 del Diputado - Atribututos sin asignación de Valores
     */
    public Diputado_CU00695B () {
        super();
    } // Cierre del constructor 1

    /**
     * Constructor 2 del Diputado - Atribututos con asignación de Valores
     */
    public Diputado_CU00695B (String nombre, String apellidos, int edad, String provinciaQueRepresenta,String idLegislador, int antiguedad) {
        super(nombre, apellidos, edad, provinciaQueRepresenta, idLegislador, antiguedad);
    } // Cierre del constructor 2
   
    /**
     * Método Abstracto que redefine (obligatoriamente han de hacerlo) el método abstracto getCamaraEnQueTrabaja() de la superclase.
     * @return En que Cámara trabaja el Diputado
     */
    public String getCamaraEnQueTrabaja() { return " en la Cámara del Congreso.";} //Método abstracto sobreescrito en esta clase
   
    /**
     * Método para para obtener los datos del Diputado
     * @return Los datos del Diputado
     */
    public String toString () { // Sobreescritura del método
        return super.toString().concat (getCamaraEnQueTrabaja());}

} //Cierre de la clase

Subclase Senador:
Código: [Seleccionar]
/**
 * EJERCICIO DE HERENCIAS + CLASES Y MÉTODOS ABSTRACTOS.<br>
 * Esta Clase define una Subclase que "bebe" de la Superclase Legislador_CU00695B.<br>
 * Clase 4 del Ejercicio del Tema "CU00695B clases abstractas java metodos abstract class api ejemplo ejercicio".
 * @author Lorenzo Fernández Asensio
 * @version 20151209.01
 */
public class Senador_CU00695B extends Legislador_CU00695B {
   
    // No hay campos específicos de la subclase.
   
    /**
     * Constructor 1 del Senador - Atribututos sin asignación de Valores
     */
    public Senador_CU00695B () {
        super();
    } // Cierre del constructor 1

    /**
     * Constructor 2 del Senador - Atribututos con asignación de Valores
     */
    public Senador_CU00695B (String nombre, String apellidos, int edad, String provinciaQueRepresenta,String idLegislador, int antiguedad) {
        super(nombre, apellidos, edad, provinciaQueRepresenta, idLegislador, antiguedad);
    } // Cierre del constructor 2
   
    /**
     * Método Abstracto que redefine (obligatoriamente han de hacerlo) el método abstracto getCamaraEnQueTrabaja() de la superclase.
     * @return En que Cámara trabaja el Senador
     */
    public String getCamaraEnQueTrabaja() { return " en la Cámara del Senado.";} //Método abstracto sobreescrito
   
    /**
     * Método para para obtener los datos del Senador
     * @return Los datos del Senador
     */
    public String toString () { // Sobreescritura del método
        return super.toString().concat (getCamaraEnQueTrabaja());}

} //Cierre de la clase

Clase Lista Legisladores:
Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Iterator;

/**
 * EJERCICIO DE HERENCIAS + CLASES Y MÉTODOS ABSTRACTOS.<br>
 * Esta Clase define una Subclase que "bebe" de las Superclases intermedias de tipos de Legisladores.<br>
 * Clase 5 del Ejercicio del Tema "CU00695B clases abstractas java metodos abstract class api ejemplo ejercicio".
 * @author Lorenzo Fernández Asensio
 * @version 20151209.01
 */
public class ListaLegisladores_CU00695B {
   
    // Inicialización de la Colección
    private ArrayList <Legislador_CU00695B> listaLegisladores; //Campo de la clase
   
    /**
     * Constructor de la Colección Lista de Legisladores.
     * @param listaLegisladores El parámetro listaLegisladores define la colección de la Lista de Legisladores
     */
    public ListaLegisladores_CU00695B () {
        // Creación de la Colección
        listaLegisladores = new ArrayList <Legislador_CU00695B> ();
    } // Cierre del Constructor
   
    /**
     * Método para añadir un legislador a la Colección
     * @param legisladorNuevo El parámetro legisladorNuevo define el Legislador que se añade a la Colección
     */
    public void addLegislador (Legislador_CU00695B legisladorNuevo) {
        listaLegisladores.add(legisladorNuevo);
    } // Cierre del método para añadir un legislador a la Colección
   
    /**
     * Método para mostrar por pantalla la Información usando un For Extendido
     */
    public void imprimirListado() {
       
        // Se limpia la pantalla de la Consola
        System.out.println("\f");
       
        // Se Muestra en pantalla un mensaje de Inicio
        System.out.println ("En la actualidad, tenemos los siguientes Legisladores:");
       
        // Se recorre la lista mostrando los datos
        for (Legislador_CU00695B tmp: listaLegisladores) {
            // Se realiza una llamada al método "toString" del objeto en curso
            System.out.println (tmp.toString());
        }
       
    } //Cierre método imprimirListin
   
} //Cierre de la clase

Clase Test:
Código: [Seleccionar]
/**
 * EJERCICIO DE HERENCIAS + CLASES Y MÉTODOS ABSTRACTOS.<br>
 * Esta Clase define una clase test para probar Herencias y Clase & Métodos Abstractos.<br>
 * Clase 6 del Ejercicio del Tema "CU00695B clases abstractas java metodos abstract class api ejemplo ejercicio".
 * @author Lorenzo Fernández Asensio
 * @version 20151209.01
 */
public class TestAbstractLegis_CU00695B {

    public static void main (String [ ] Args) {
       
       
        // Creación de varios Diputados
        Diputado_CU00695B Diputado1 = new Diputado_CU00695B ("Adrian", "De las Heras Cortes", 57, "Barcelona", "BAR-35752", 7);
        Diputado_CU00695B Diputado2 = new Diputado_CU00695B ("Celia", "Jimenez Ladrillo", 63, "Sevilla", "SEV-7841", 14);
        Diputado_CU00695B Diputado3 = new Diputado_CU00695B ("Felix", "Garcia Trujillo", 58, "Badajoz", "BAD-459", 3);
       
        // Creación de varios Senadores
        Senador_CU00695B senador1 = new Senador_CU00695B ("Maria de la O", "Abellan Ruiz", 46, "Salamanca", "BSAL-4978", 1);
        Senador_CU00695B senador2 = new Senador_CU00695B ("Ramón", "Guitarra Espada", 69, "Murcia", "MUR-1599", 8);
        Senador_CU00695B senador3 = new Senador_CU00695B ("Margarita", "Sanchez Raspa", 51, "Huelva", "HUE-1994", 5);
       
        // Creación de un objeto Lista de Legisladores
        ListaLegisladores_CU00695B listaLegisladores = new ListaLegisladores_CU00695B ();
       
        // Se Añaden a la lista los Diputados
        listaLegisladores.addLegislador(Diputado1);
        listaLegisladores.addLegislador(Diputado2);
        listaLegisladores.addLegislador(Diputado3);
       
        // Se Añaden al listin los Senadores
        listaLegisladores.addLegislador(senador1);
        listaLegisladores.addLegislador(senador2);
        listaLegisladores.addLegislador(senador3);
       
        // Se realiza llamada al método "imprimirListado" de la clase "listaLegisladores" para imprimirlo
        listaLegisladores.imprimirListado();
           
    } // Cierre del main

} // Cierre de la clase

Como siempre, espero vuestros comentarios.

Muchas Gracias,

Un Saludo,

4
Buenas tardes,

Aquí dejo mi ejercicio del tema "CU00694B sobreescribir metodo toString equals java comparar objetos ejemplos" para su corrección:

Superclase Figura:

Código: [Seleccionar]
/**
 * EJERCICIO DE HERENCIAS, MÉTODOS POLIMÓRFICOS Y USO DEL MÉTODO EQUALS.<br>
 * Esta Clase define una Superclase de la que "beberan" otras clases.<br>
 * Clase 1 del Ejercicio del Tema "CU00694B sobreescribir metodo toString equals java comparar objetos ejemplos".
 * @author aprenderaprogramar.com
 * @version 20151204.01
 */
public class Figura_CU00694B {

    // Inicialización de Atributos
    protected int dimensionPrincipal;

    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores
     * @param dimensionPrincipal El parámetro dimensionPrincipal define la Medida Principal de la Figura
     */
    public Figura_CU00694B() {
        dimensionPrincipal = 0;
    } // Cierre del Constructor 1

    /**
     * Constructor 2 del Producto. Atribututos con asignación de Valores
     * @param dimensionPrincipal El parámetro dimensionPrincipal define la Medida Principal de la Figura
     */
    public Figura_CU00694B(int dimensionPrincipal) {
        this.dimensionPrincipal = dimensionPrincipal;
    } // Cierre del Constructor 2

    /**
     * Método para establecer la Medida Principal de la Figura
     * @param valorDimensionPrincipal El parámetro valorDimensionPrincipal define el valor que contendrá la Medida Principal de la Figura
     */
    public void setDimensionPrincipal(int valorDimensionPrincipal) {
        dimensionPrincipal = valorDimensionPrincipal;
    } // Cierre del método para establecer la Medida Principal de la Figura

    /**
     * Método para para obtener la Medida Principal de la Figura
     * @return la Medida Principal de la Figura
     */
    public int getDimensionPrincipal(){ return dimensionPrincipal; }

    /**
     * Método de Sobreescritura del método equals
     * @return Comparación de si dos Figuras tienen igual la Medida Principal
     */
    public boolean equals (Object obj) {

        /* En primer lugar se comprueba si el objeto pasado como parámetro (obj) es un tipo Figura.
         * Si no lo es, se devuelve como resultado del método false:
         * los objetos no son iguales (no pueden serlo si ni siquiera coinciden sus tipos).*/
        if (obj instanceof Figura_CU00694B) {

            /* En segundo lugar, se crea una variable de tipo Figura a la que se asigna
             * el objeto pasado como parámetro valiéndonos de casting (enmascaramiento).
             * Esta variable se crea para poder invocar campos y métodos de la clase Figura,
             * ya que esto no se podria hacer sobre un objeto de tipo Object.
             * Con esta variable, se realizan las comparaciones oportunas y se devuelve un resultado.*/
            Figura_CU00694B tmpFigura = (Figura_CU00694B) obj;

            /* Comparación para ver si coinciden su dimensionPrincipal.
             * La dimensionPrincipal se compara con el operador == por ser un tipo primitivo*/
            if (this.dimensionPrincipal == tmpFigura.dimensionPrincipal) {
                return true;
            } else {
                return false; }

        } else {
            return false;
        }

    } //Cierre del método equals

    /**
     * Método para mostar la Información de la Figura
     */
    public void mostrarDatos() {
        System.out.println ("\tMedida Principal de la Figura: " + dimensionPrincipal);
    } // Cierre del método para mostrar información de la Figura

} // Cierre de la Clase


Subclase Cuadrado:

Código: [Seleccionar]
/**
 * EJERCICIO DE HERENCIAS, MÉTODOS POLIMÓRFICOS Y USO DEL MÉTODO EQUALS.<br>
 * Esta Clase define una Subclase que "bebe" de la Superclase Figura_CU00694B.<br>
 * Clase 2 del Ejercicio del Tema "CU00694B sobreescribir metodo toString equals java comparar objetos ejemplos".
 * @author aprenderaprogramar.com
 * @version 20151204.01
 */
public class Cuadrado_CU00694B extends Figura_CU00694B {

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

    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores
     */
    public Cuadrado_CU00694B () {
        super();
    } // Cierre del constructor 1

    /**
     * Constructor 2 del Producto. Atribututos con asignación de Valores
     */
    public Cuadrado_CU00694B (int dimensionPrincipal) {       
        super(dimensionPrincipal); // Parametros del constructor de la Superclase. Siempre se incluyen
        // No hay campos específicos de la subclase.
    } // Cierre del constructor 2

    // METODOS ESPECIFICOS DE LA SUBLASE
    /**
     * Método de Sobreescritura del método equals
     * @return Comparación de si dos cuadrados son iguales si coinciden su Medida Principal.
     */
    public boolean equals (Object obj) {
       
        /* En primer lugar se comprueba si el objeto pasado como parámetro (obj) es un tipo Cuadrado.
         * Si no lo es, se devuelve como resultado del método false:
         * los objetos no son iguales (no pueden serlo si ni siquiera coinciden sus tipos).*/
        if (obj instanceof Cuadrado_CU00694B) {
           
            /* En segundo lugar, se crea una variable de tipo Cuadrado a la que se asigna
             * el objeto pasado como parámetro valiéndonos de casting (enmascaramiento).
             * Esta variable se crea para poder invocar campos y métodos de la clase Cuadrado,
             * ya que esto no se podria hacer sobre un objeto de tipo Object.
             * Con esta variable, se realizan las comparaciones oportunas y se devuelve un resultado.*/
             Cuadrado_CU00694B tmpCuadrado = (Cuadrado_CU00694B) obj;
           
            /* En este caso se invoca el método equals de la superclase Figura,
             * para que dos cuadrados sean iguales han de coincidir la dimensionPrincipal.*/
            if (super.equals(tmpCuadrado)) {
                return true;
            } else {
                return false;
            }
           
        } else {
            return false;
        }
       
    } // Cierre del método equals
   
    /**
     * Método para clacular el área del cuadrado
     * @return El área del cuadrado.
     */
    public double getAreaCuadrado() {
        return dimensionPrincipal * dimensionPrincipal;
    } // Cierre del método para clacular el área del círculo
   
    /**
     * Método para mostar la Información del Cuadrado
     */
    public void mostrarDatos() {
        super.mostrarDatos();
         System.out.println ("\tPor lo tanto, el Área del Cuadrado es: " + dimensionPrincipal + "*" + dimensionPrincipal + " = " + getAreaCuadrado());
    } // Cierre del método para mostar la Información del Cuadrado

} // Cierre de la Clase


Subclase Círculo:

Código: [Seleccionar]
/**
 * EJERCICIO DE HERENCIAS, MÉTODOS POLIMÓRFICOS Y USO DEL MÉTODO EQUALS.<br>
 * Esta Clase define una Subclase que "bebe" de la Superclase Figura_CU00694B.<br>
 * Clase 3 del Ejercicio del Tema "CU00694B sobreescribir metodo toString equals java comparar objetos ejemplos".
 * @author aprenderaprogramar.com
 * @version 20151204.01
 */
public class Circulo_CU00694B extends Figura_CU00694B {

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

    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores
     */
    public Circulo_CU00694B () {
        super();
    } // Cierre del constructor 1

    /**
     * Constructor 2 del Producto. Atribututos con asignación de Valores
     */
    public Circulo_CU00694B (int dimensionPrincipal) {       
        super(dimensionPrincipal); // Parametros del constructor de la Superclase. Siempre se incluyen
        // No hay campos específicos de la subclase.
    } // Cierre del constructor 2

    // METODOS ESPECIFICOS DE LA SUBLASE
    /**
     * Método de Sobreescritura del método equals
     * @return Comparación de si dos círculos son iguales si coinciden su Medida Principal.
     */
    public boolean equals (Object obj) {
       
        /* En primer lugar se comprueba si el objeto pasado como parámetro (obj) es un tipo Círculo.
         * Si no lo es, se devuelve como resultado del método false:
         * los objetos no son iguales (no pueden serlo si ni siquiera coinciden sus tipos).*/
        if (obj instanceof Circulo_CU00694B) {
           
            /* En segundo lugar, se crea una variable de tipo Círculo a la que se asigna
             * el objeto pasado como parámetro valiéndonos de casting (enmascaramiento).
             * Esta variable se crea para poder invocar campos y métodos de la clase Círculo,
             * ya que esto no se podria hacer sobre un objeto de tipo Object.
             * Con esta variable, se realizan las comparaciones oportunas y se devuelve un resultado.*/
             Circulo_CU00694B tmpCirculo = (Circulo_CU00694B) obj;
           
            /* En este caso se invoca el método equals de la superclase Figura,
             * con lo que se dice que para que dos círculos sean iguales
             * han de coincidir la dimensionPrincipal.*/
            if (super.equals(tmpCirculo)) {
                return true;
            } else {
                return false;
            }
           
        } else {
            return false;
        }
       
    } // Cierre del método equals
   
    /**
     * Método para clacular el área del círculo
     * @return El área del círculo.
     */
    public double getAreaCirculo() {
        return 3.1416 * (dimensionPrincipal*dimensionPrincipal);
    } // Cierre del método para clacular el área del círculo
   
    /**
     * Método para mostar la Información del Circulo
     */
    public void mostrarDatos() {
        super.mostrarDatos();
         System.out.println ("\tPor lo tanto, el Área del Circulo es: 3.1416*(" + dimensionPrincipal + "*" + dimensionPrincipal + ") = " + getAreaCirculo());
    } // Cierre del método para mostar la Información del Circulo

} // Cierre de la Clase


Clase Test:

Código: [Seleccionar]
/**
 * EJERCICIO DE HERENCIAS, MÉTODOS POLIMÓRFICOS Y USO DEL MÉTODO EQUALS.<br>
 * Esta Clase define una clase test para probar Herencias y método Equals.<br>
 * Clase 4 del Ejercicio del Tema "CU00694B sobreescribir metodo toString equals java comparar objetos ejemplos".
 * @author aprenderaprogramar.com
 * @version 20151204.01
 */
public class TestEquals_CU00694B{
   
    public static void main (String [ ] Args) {
       
        /* Creación de 3 objetos Cuadrado
         * Se le pasa 1 parámetros gestionado por el constructor de la superclase Figura*/
        Cuadrado_CU00694B cuadrado1 = new Cuadrado_CU00694B (55);
        Cuadrado_CU00694B cuadrado2 = new Cuadrado_CU00694B (25);
        Cuadrado_CU00694B cuadrado3 = new Cuadrado_CU00694B (55);
       
        /* Creación de 3 objetos Circulo
         * Se le pasa 1 parámetros gestionado por el constructor de la superclase Figura*/
        Circulo_CU00694B circulo1 = new Circulo_CU00694B (48);
        Circulo_CU00694B circulo2 = new Circulo_CU00694B (48);
        Circulo_CU00694B circulo3 = new Circulo_CU00694B (25);
       
        // Se limpia la pantalla de la Consola
        System.out.println("\f");
       
        // Se muestran en pantalla las compraciones de los distintos objetos
        System.out.println ("COMPARATIVA DE LOS CUADRADOS");
        System.out.println ("----------------------------");
        System.out.println ("- El Cuadrado1:");
        cuadrado1.mostrarDatos();
        System.out.println ("- El Cuadrado2:");
        cuadrado2.mostrarDatos();
        System.out.println ("- El Cuadrado3:");
        cuadrado3.mostrarDatos();
        System.out.println ("- Comparaciones:");
        System.out.println ("\t¿Son iguales el cuadrado1 y el cuadrado2? " + cuadrado1.equals(cuadrado2) );
        System.out.println ("\t¿Son iguales el cuadrado1 y el cuadrado3? " + cuadrado1.equals(cuadrado3) );
        System.out.println ("\t¿Son iguales el cuadrado2 y el cuadrado3? " + cuadrado2.equals(cuadrado3) );
        System.out.println(""); // Se imprime una línea en Blanco de separación
        System.out.println ("COMPARATIVA DE LOS CÍCULOS");
        System.out.println ("--------------------------");
        System.out.println ("- El Círculo1:");
        circulo1.mostrarDatos();
        System.out.println ("- El Círculo2:");
        circulo2.mostrarDatos();
        System.out.println ("- El Círculo3:");
        circulo3.mostrarDatos();
        System.out.println ("- Comparaciones:");
        System.out.println ("\t¿Son iguales la circulo1 y la circulo2? " + circulo1.equals(circulo2) );
        System.out.println ("\t¿Son iguales la circulo1 y la circulo3? " + circulo1.equals(circulo3) );
        System.out.println ("\t¿Son iguales la circulo2 y la circulo3? " + circulo2.equals(circulo3) );
        System.out.println(""); // Se imprime una línea en Blanco de separación
        System.out.println ("Se realiza una ultima comprobación entre uno de los cuadrados y un círculo con la misma Medida Proncipal");
        System.out.println ("\t¿Son iguales la cuadrado2 y la circulo3? " + cuadrado2.equals(circulo3) );
       
    } //Cierre del main
   
} //Cierre de la clase

Espero vuestros comentarios,

Muchas gracias,

Saludos,

5
Hola,

Aquí dejo mi ejercicio del tema "CU00693B tipos modificador acceso java public private protected visibilidad" para su corrección:

Citar
Considera que estás desarrollando un programa Java donde trabajas con la superclase Profesor y la subclase ProfesorEmerito. Crea el código para estas clases que cumpla los requisitos que indicamos.
Como atributos de la superclase tendremos nombre (String), edad (int) y  añosConsolidados (int) declarados como protected.
Código: [Seleccionar]
/**
 * EJEMPLO DE HERENCIAS, MÉTODOS POLIMÓRFICOS Y ACCESO.<br>
 * Esta Clase define una Superclase de la que "beberan" otras clases.<br>
 * Clase 1 del Ejercicio del Tema "CU00693B tipos modificador acceso java public private protected visibilidad".
 * @author Lorenzo Fernández Asensio
 * @version 20151202.01
 */
public class Profesor_CU00693B {

    // Inicialización de Atributos
    protected String nombre;
    protected int edad,
                agnosConsolidados;
    /* La sigiente inicialización daría error al compilar la subclase "Profesor Emerito"
     * si se intenta usar este atributo sin utilizar una invocación a super ni un método get*/
    // private agnosConsolidados;

    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores
     * @param nombre El parámetro nombre define el Nombre del Profesor
     * @param edad El parámetro edad define la edad del Profesor
     * @param agnosConsolidados El parámetro agnosConsolidados define los años consolidados que lleva el Profesor
     */
    public Profesor_CU00693B () {
        nombre = "";
        edad = 0;
        agnosConsolidados = 0;
    } // Cierre del constructor 1

    /**
     * Constructor 2 del Producto. Atribututos con asignación de Valores
     * @param nombre El parámetro nombre define el Nombre del Profesor
     * @param edad El parámetro edad define la edad del Profesor
     * @param agnosConsolidados El parámetro agnosConsolidados define los años consolidados que lleva el Profesor
     */
    public Profesor_CU00693B (String nombre, int edad, int agnosConsolidados) {       
        this.nombre = nombre;
        this.edad = edad;
        this.agnosConsolidados = agnosConsolidados;
    } // Cierre del constructor 2

    /**
     * Método para establecer el Nombre del Profesor
     * @param valorNombre El parámetro valorNombre define el valor que contendrá el Nombre
     */
    public void setNombre(String valorNombre) {
        nombre = valorNombre;
    } // Cierre del método para establecer el Nombre del Profesor
   
    /**
     * Método para establecer la Edad del Profesor
     * @param valorEdad El parámetro valorEdad define el valor que contendrá la Edad
     */
    public void setEdad(int valorEdad) {
        edad = valorEdad;
    } // Cierre del método para establecer la Edad del Profesor
   
    /**
     * Método para establecer los Años Consolidados del Profesor
     * @param valorAgnosConsolidados El parámetro valorAgnosConsolidados define el valor que contendrá los Años Consolidados
     */
    public void setAgnosConsolidados(int valorAgnosConsolidados) {
        agnosConsolidados = valorAgnosConsolidados;
    } // Cierre del método para establecer la Edad del Profesor
   
    /**
     * Método para para obtener la Nombre del Profesor
     * @return El Nombre del Profesor
     */
    public String getNombre(){ return nombre; }
   
     /**
     * Método para para obtener la Edad del Profesor
     * @return La Edad del Profesor
     */
    public int getEdad(){ return edad; }
   
     /**
     * Método para para obtener los Años Consolidados del Profesor
     * @return Los Años Consolidados del Profesor
     */
    public int getAgnosConsolidados(){ return agnosConsolidados; }
   
    /**
     * Método para para obtener el Salario Base del Profesor
     * @return El Salario Base del Profesor
     */
    public double obtenerSalarioBase() {
        return  725 + (agnosConsolidados * 33.25);
    } // Cierre del método para obtener el Salario Base del Profesor
   
    /**
     * Método para mostar la Información del Profesor
     */
    public void mostrarDatos() {
        System.out.println ("Nombre: " + nombre);
        System.out.println ("De: " + edad + " años");
        System.out.println ("Con: " + agnosConsolidados + " años como Profesor Consolidado");
    } // Cierre del método para mostrar información del Profesor
   
} // Cierre de la Clase

Citar
En la subclase se trabajará con el campo adicional añosEmerito declarado como private.
Un método de la subclase será double obtenerSalarioBase () que obtendrá el salario base como (925 + añosConsolidados * 33.25 + 47.80 * añosEmerito).
Intenta acceder directamente al campo añosConsolidados desde la subclase (como si fuera un campo más de la subclase) para implementar este método.
Código: [Seleccionar]
/**EJEMPLO DE HERENCIAS, MÉTODOS POLIMÓRFICOS Y ACCESO.<br>
 * Esta Clase define una Subclase que "bebe" de la Superclase Profesor_CU00693B.<br>
 * Clase 2 del Ejercicio del Tema "CU00693B tipos modificador acceso java public private protected visibilidad".
 * @author Lorenzo Fernández Asensio
 * @version 20151202.01
 */
public class ProfesorEmerito_CU00693B extends Profesor_CU00693B {
   
    //Campo específico de la subclase.
    private int agnosEmerito;
   
     /**
     * Constructor 1 del Profesor. Atribututos sin asignación de Valores
     * @param agnosEmerito El parámetro agnosEmerito define los años que lleva como Emerito el Profesor
     */
    public ProfesorEmerito_CU00693B() {
        super();
        agnosEmerito = 0;
    } // Cierre del constructor 1
   
     /** Constructor 2 del Profesor. Atribututos con asignación de Valores
      * @param agnosEmerito El parámetro agnosEmerito define los años que lleva como Emerito el Profesor
     */
    public ProfesorEmerito_CU00693B(String nombre, int edad, int agnosConsolidados, int agnosEmerito) {
        super(nombre, edad, agnosConsolidados);
        this.agnosEmerito = agnosEmerito;
    } // Cierre del constructor 2
   
    /**
     * Método para establecer los Años que lleva el Profesor como Emerito
     * @param valorAgnosEmerito El parámetro valorAgnosEmerito define el valor de los Años como Emerito
     */
    public void setAgnosEmerito(int valorAgnosEmerito) {
        agnosEmerito = valorAgnosEmerito;
    } // Cierre del método para establecer los Años que lleva el Profesor como Emerito
   
    /**
     * Método para para obtener los Años que lleva el Profesor como Emerito
     * @return Los Años que lleva el Profesor como Emerito
     */
    public int getAgnosEmerito() { return agnosEmerito;}
   
    /**
     * Método para para obtener el Salario Base del Profesor Emerito
     * @return El Salario Base del Profesor Emerito
     */
    public double obtenerSalarioBase() {
    /* En la sigiente formula daría error al compilar si en la superclase Profesor se define "agnosConsolidados" como private
     * por usar "agnosConsolidados" directamente, sin utilizar una invocación a super ni un método get*/
        return 925 + (agnosConsolidados * 33.25) + (47.80 * agnosEmerito);
    } // Cierre del método para obtener el Salario Base del Profesor
   
    /**
     * Método para mostar la Información del Profesor Emerito
     */
    public void mostrarDatos() {
        //super.mostrarDatos(); // Se puede usar super sin problemas pero lo anulo para usar los campos directamente
        System.out.println ("Nombre: " + nombre);
        System.out.println ("De: " + edad + " años");
        System.out.println ("Con: " + agnosConsolidados + " años como Profesor Consolidado");
        System.out.println ("Más " + agnosEmerito + " años como Profesor Emerito");
        System.out.println ("Y un Sueldo Base de: " + obtenerSalarioBase());
    } // Cierre del método para mostar la Información del Profesor
   
} //Cierre de la clase

Citar
¿Es posible sin utilizar una invocación a super ni un método get?
Si. Se puede utilizar ya que protected permite que las subclases sí pueden tener acceso al campo o método.

Citar
¿Qué ocurre si el atributo en la superclase lo declaras private?
Al compilar la subclase salta un error “agnosConsolidados has private access in Profesor_CU00693B” en línea 50 “return 925 + (agnosConsolidados * 33.25) + (47.80 * agnosEmerito);“
No se permite usar directamente el atributo "agnosConsolidados" al estar como privado.

Espero vuestros comentarios,

Muchas Gracias,

Saludos,

6
Buenas Tardes,

Aquí dejo mi ejercicio del tema "CU00692B super invocar metodos superclases subclases java ejemplo basico" para su corrección:

Clase Profesor:

Código: [Seleccionar]
/**
 * EJEMPLO DE HERENCIAS, MÉTODOS POLIMÓRFICOS Y USO DE SUPER PARA LLAMAR A MÉTODOS DE SUPERCLASE.<br>
 * Esta Clase define una Superclase de la que "beberan" otras clases.<br>
 * Clase 1 del Ejercicio del Tema "CU00692B super invocar metodos superclases subclases java ejemplo basico".
 * @author Lorenzo Fernández Asensio
 * @version 20151201.01
 */
public class Profesor_CU00692B {

    // Inicialización de Atributos
    private String nombre;
    private int edad,
                agnosConsolidados;

    /**
     * Constructor 1 del Producto. Atribututos sin asignación de Valores
     * @param nombre El parámetro nombre define el Nombre del Profesor
     * @param edad El parámetro edad define la edad del Profesor
     * @param agnosConsolidados El parámetro agnosConsolidados define los años consolidados que lleva el Profesor
     */
    public Profesor_CU00692B () {
        nombre = "";
        edad = 0;
        agnosConsolidados = 0;
    } // Cierre del constructor 1

    /**
     * Constructor 2 del Producto. Atribututos con asignación de Valores
     * @param nombre El parámetro nombre define el Nombre del Profesor
     * @param edad El parámetro edad define la edad del Profesor
     * @param agnosConsolidados El parámetro agnosConsolidados define los años consolidados que lleva el Profesor
     */
    public Profesor_CU00692B (String nombre, int edad, int agnosConsolidados) {       
        this.nombre = nombre;
        this.edad = edad;
        this.agnosConsolidados = agnosConsolidados;
    } // Cierre del constructor 2

    /**
     * Método para establecer el Nombre del Profesor
     * @param valorNombre El parámetro valorNombre define el valor que contendrá el Nombre
     */
    public void setNombre(String valorNombre) {
        nombre = valorNombre;
    } // Cierre del método para establecer el Nombre del Profesor
   
    /**
     * Método para establecer la Edad del Profesor
     * @param valorEdad El parámetro valorEdad define el valor que contendrá la Edad
     */
    public void setEdad(int valorEdad) {
        edad = valorEdad;
    } // Cierre del método para establecer la Edad del Profesor
   
    /**
     * Método para establecer los Años Consolidados del Profesor
     * @param valorAgnosConsolidados El parámetro valorAgnosConsolidados define el valor que contendrá los Años Consolidados
     */
    public void setAgnosConsolidados(int valorAgnosConsolidados) {
        agnosConsolidados = valorAgnosConsolidados;
    } // Cierre del método para establecer la Edad del Profesor
   
    /**
     * Método para para obtener la Nombre del Profesor
     * @return El Nombre del Profesor
     */
    public String getNombre(){ return nombre; }
   
     /**
     * Método para para obtener la Edad del Profesor
     * @return La Edad del Profesor
     */
    public int getEdad(){ return edad; }
   
     /**
     * Método para para obtener los Años Consolidados del Profesor
     * @return Los Años Consolidados del Profesor
     */
    public int getAgnosConsolidados(){ return agnosConsolidados; }
   
    /**
     * Método para para obtener el Salario Base del Profesor
     * @return El Salario Base del Profesor
     */
    public double obtenerSalarioBase() {
        return  725 + (agnosConsolidados * 33.25);
    } // Cierre del método para obtener el Salario Base del Profesor
   
    /**
     * Método para mostar la Información del Profesor
     */
    public void mostrarDatos() {
        System.out.println ("Nombre: " + nombre);
        System.out.println ("De: " + edad + " años");
        System.out.println ("Con: " + agnosConsolidados + " años como Profesor Consolidado");
    } // Cierre del método para mostrar información del Profesor
   
} // Cierre de la Clase


Clase Profesor Emerito:

Código: [Seleccionar]
/**EJEMPLO DE HERENCIAS, MÉTODOS POLIMÓRFICOS Y USO DE SUPER PARA LLAMAR A MÉTODOS DE SUPERCLASE.<br>
 * Esta Clase define una Subclase que "bebe" de la Superclase Profesor_CU00692B.<br>
 * Clase 2 del Ejercicio del Tema "CU00692B super invocar metodos superclases subclases java ejemplo basico".
 * @author Lorenzo Fernández Asensio
 * @version 20151201.01
 */
public class ProfesorEmerito_CU00692B extends Profesor_CU00692B {
   
    //Campo específico de la subclase.
    private int agnosEmerito;
   
     /**
     * Constructor 1 del Profesor. Atribututos sin asignación de Valores
     * @param agnosEmerito El parámetro agnosEmerito define los años que lleva como Emerito el Profesor
     */
    public ProfesorEmerito_CU00692B() {
        super();
        agnosEmerito = 0;
    } // Cierre del constructor 1
   
     /** Constructor 2 del Profesor. Atribututos con asignación de Valores
      * @param agnosEmerito El parámetro agnosEmerito define los años que lleva como Emerito el Profesor
     */
    public ProfesorEmerito_CU00692B(String nombre, int edad, int agnosConsolidados, int agnosEmerito) {
        super(nombre, edad, agnosConsolidados);
        this.agnosEmerito = agnosEmerito;
    } // Cierre del constructor 2
   
    /**
     * Método para establecer los Años que lleva el Profesor como Emerito
     * @param valorAgnosEmerito El parámetro valorAgnosEmerito define el valor de los Años como Emerito
     */
    public void setAgnosEmerito(int valorAgnosEmerito) {
        agnosEmerito = valorAgnosEmerito;
    } // Cierre del método para establecer los Años que lleva el Profesor como Emerito
   
    /**
     * Método para para obtener los Años que lleva el Profesor como Emerito
     * @return Los Años que lleva el Profesor como Emerito
     */
    public int getAgnosEmerito() { return agnosEmerito;}
   
    /**
     * Método para para obtener el Salario Base del Profesor Emerito
     * @return El Salario Base del Profesor Emerito
     */
    public double obtenerSalarioBase() {
        return super.obtenerSalarioBase() + (47.80 * agnosEmerito);
    } // Cierre del método para obtener el Salario Base del Profesor
   
    /**
     * Método para mostar la Información del Profesor Emerito
     */
    public void mostrarDatos() {
        super.mostrarDatos();
        System.out.println ("Más " + agnosEmerito + " años como Profesor Emerito");
    } // Cierre del método para mostar la Información del Profesor
   
} //Cierre de la clase


Clase Test:

Código: [Seleccionar]
/**
 * EJEMPLO DE HERENCIAS, MÉTODOS POLIMÓRFICOS Y USO DE SUPER PARA LLAMAR A MÉTODOS DE SUPERCLASE.<br>
 * Esta Clase define una clase test para probar Herencias, Polimorfismos y uso de super para métodos.<br>
 * Clase 3 del Ejercicio del Tema "CU00692B super invocar metodos superclases subclases java ejemplo basico".
 * @author Lorenzo Fernández Asensio
 * @version 20151201.01
 */
public class TestHerencia_CU00692B {

    public static void main (String [ ] Args) {
       
        // Se crea un objeto Profesor
        // y se le pasan 3 parámetros que son gestionados por el constructor de la superclase Profesor
        Profesor_CU00692B profesor1 = new Profesor_CU00692B ("Daniel", 51, 30);
       
        // Se crea un objeto Profesor Emerito
        // y se le pasan 4 parámetros. 3 son gestionados por el constructor de la superclase Profesor
        // y 1 parámetro gestionado por el cosntructor de la subclase Profesor Emerito
        Profesor_CU00692B emerito1 = new ProfesorEmerito_CU00692B("Marcos", 65, 42, 10);
       
        // Se limpia la pantalla de la Consola
        System.out.println("\f");
       
        // Mostrar Datos
        emerito1.mostrarDatos();
        System.out.println ("Y con un Sueldo Base de: " + emerito1.obtenerSalarioBase());
        System.out.println("");
        profesor1.mostrarDatos();
        System.out.println ("Y con un Sueldo Base de: " + profesor1.obtenerSalarioBase());
    } //Cierre del main
   
} //Cierre de la clase

Espero vuestras correcciones,

Muchas Gracias,

Saludos,

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

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

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

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

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

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

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

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

15
Hola,

Adjunto mi ejercicio del tema "CU00680B javadoc documentar proyectos java tags deprecated param return" para su corrección:

Código: [Seleccionar]
// EJERCICIO DE DOCUMENTACIÓN DE PROYECTOS CON JAVADOC
// ----> CU00680B javadoc documentar proyectos java tags deprecated param return.pdf

/**
 * Esta clase calcula el Valor Absoluto y la Raiz Cuadrada de un número dado.
 * Ejercicio del Tema "CU00680B javadoc documentar proyectos java tags deprecated param return"
 * @author: Lorenzo Fernández Asensio
 * @version: 20151114.01
 * @see <a href = "https://www.aprenderaprogramar.com" /> aprenderaprogramar.com – Didáctica en programación </a>
 */
public class MiniCalculadoraEjemplo_CU00680B {
   
     /**
     * Constructor Vacio -
     * No tienen Parámetros
     */
    public MiniCalculadoraEjemplo_CU00680B () {
        // Constructor Vacio
    }

     /**
     * Método para obtener el valor absoluto de un número dado (num)
     * @param num El parámetro num define el numero sobre el que se va a calcular el Valor Absoluto
     * @return El valor absoluto de un número dado (num)
     */
    public double numAbsoluto (double num) {
        return Math.abs (num);
    } //Cierre del método de valor absoluto
   
    /**
     * Método para obtener la raiz cuadrada de un número dado (num)
     * @param num El parámetro num define el numero sobre el que se va a calcular la Raiz Cuadrada
     * @return La Raiz Cuadrada de un número dado (num)
     */
    public double raizCuadrada (double num) {
        return Math.sqrt (num);
    } //Cierre del método de valor absoluto
   
} //Cierre de la clase

Espero vuestros comentarios,

Muchas gracias,

Saludos,

16
Hola,

Aquí dejo mi ejercicio del tema "CU00679B transformar array en ArrayList java asList ejemplo constructores" para su correción:

Código: [Seleccionar]
// EJERCICIO PARA CREAR UN LIKEDLIST PASANDOLE COMO PARAMETRO UNA ARRAY ESTATICA
// ----> CU00679B transformar array en ArrayList java asList ejemplo constructores.pdf

import java.util.LinkedList; // Importación de la clase para el uso de Colecciones LinkedList
import java.util.List; // Importación de la clase List
import java.util.Arrays; // Importación de la clase Arrays
import java.util.Iterator; // Importación de la clase Iterator

public class TestDeArrayALinkedList_CU00679B {

    public static void main (String [ ] Args) {

        // Declaración e Inicialización de una Array Estatica Tipo Booleana
        Boolean [ ] miArrayBooleana = {true, true, false, false, true, false};

        // Declaración de un LinkedList tipo Booleana
        List <Boolean> miLinkedList = new LinkedList <Boolean>();

        // Devolver un tipo LinkedList cuando se invoca asList pasándole un array estatico como parámetro
        miLinkedList = Arrays.asList(miArrayBooleana);

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

        // Se muestra en pantalla el contenido del Array Estatico
        for (int i=0 ; i < miArrayBooleana.length; ++i) {
            System.out.println ("El Array Estatico miArrayBooleana[" + i + "] contiene: " + miArrayBooleana[i]);
        }

        // Se imprime una linea en blanco
        System.out.println ("");

        // Declaración de un objeto de tipo Iterator inicializado con una copia de miLinkedList para poder recorrerlo
        Iterator <Boolean> coleccionIterator =  miLinkedList.iterator();

        // Se imprime un mensaje que indica el comienzo de mostrar el contenido del LinkedList
        System.out.print ("El LinkedList miLinkedList contine: ");

        // Bucle para recorrer los elementos del LinkedList
        while (coleccionIterator.hasNext()) {

            // Mostrar el contenido de cada uno de los elementos por pantalla
            System.out.print(coleccionIterator.next());

            // Se comprueba si es el último elemento para finalizar con un "." la lista o poner "," y continuar
            if (coleccionIterator.hasNext()) {
                System.out.print(", ");
            } else {
                System.out.println(".");
            }

        } // Fin del Bucle

    } // Fin del Main

} // Fin de la Clase

Espero vuestros comentarios,

Muchas Gracias,

Saludos,

17
Hola,

Adjunto el ejercicio del tema "CU00678B que es polimorfismo java concepto definicion ejemplo practico" para su correción:

Código: [Seleccionar]
// EJERCICIO DE POLIMORFISMO
// ----> CU00678B que es polimorfismo java concepto definicion ejemplo practico.pdf

import java.util.ArrayList; // Importación de la clase para el uso de listas ArrayList
import java.util.Set;  // Importación de la Interface Set
import java.util.HashSet; // Importación clase para el uso de conjuntos HashSet
import java.util.TreeSet; // Importación clase para el uso de conjuntos TreeSet
import java.util.Iterator;  // Importación de la Interface Iterator

public class TestPolimorfismo_CU00678B {
   
    public static void main (String [ ] Args) {
       
        // Declaración e Inicialización de una Lista ArrayList tipo Set
        ArrayList <Set> listaSet = new ArrayList <Set> ();
       
        // Declaración de un objeto de tipo HashSet para contener Strings
        HashSet <String> listaHashSet = new HashSet <String> ();
       
        // Declaración de un objeto de tipo TreeSet para contener Integers
        TreeSet <Integer> listaTreeSet = new TreeSet <Integer> ();
       
        // Inicialización del objeto de tipo HashSet
        listaHashSet.add("sol");
        listaHashSet.add("luna");
        listaHashSet.add("saturno");
       
        // Inicialización del objeto de tipo TreeSet
        listaTreeSet.add(2);
        listaTreeSet.add(8);
        listaTreeSet.add(5);
       
        //Añadir los objetos HashSet y TreeSet como elementos del ArrayList
        listaSet.add(listaHashSet);
        listaSet.add(listaTreeSet);
       
        // Se borra la pantalla de la Consola
        System.out.println ("\f");
        // Se muestra mensaje de comienzo
        System.out.print ("El contenido del ArrayList llamado listaSet es: ");
       
        // Declaración de un objeto de tipo Iterator inicializado con una copia de listaSet para recorrer los elementos del ArrayList
        Iterator <Set> listaIterator = listaSet.iterator();
       
        // Bucle Exterior. Para recorrer los elementos del ArrayList
        while (listaIterator.hasNext()) {
           
            // Declaración de otro objeto (este es temporal) de tipo Iterator para recorrer el contenido de cada uno de los elementos
            Iterator tempIterator = listaIterator.next().iterator();
           
            // Bucle Interior. Para recorrer cada uno de los elementos
            while (tempIterator.hasNext()) {
               
               // Mostrar el contenido de cada uno de los elementos por pantalla
               System.out.print(tempIterator.next());
               
               // Se comprueba si es el último elemento para finalizar con un "." la lista o poner "," y continuar
               if (!listaIterator.hasNext() && !tempIterator.hasNext()) {
                    System.out.println(".");
                } else {
                    System.out.print(", ");
                }
               
            } // Fin del While del Bucle Interior
               
        } // Fin del While del Bucle Exterior
       
    } // Fin del Main
   
} // Fin de la Clase

Espero vuestros comentarios,

Muchas Gracias,

Saludos,

18
Hola,

Aqui dejo para su corrección mis respuestas al ejercicio del tema "CU00677B concepto definicion que es interface java tipos ejemplo practico":

Citar
Busca información en la documentación oficial de Java sobre la interface Iterable. ¿Qué clases de las que conoces implementan esta interface?
Que yo haya trabajado: ArrayList.

Citar
¿Qué método han de tener disponible las clases que implementan esta interface?
El método iterator.

Citar
¿Para qué sirve este método?
Devuelve un objeto de tipo Iterator con una copia de la colección que se le da.

Espero vuestros comentarios,

Un Saludo,

19
Hola,

Adjunto mi ejercicio sobre el tema "CU00676B clase Arrays api java equals copyOf fill ejercicio resuelto ejemplo" para su corrección:

Código: [Seleccionar]
// EJEMPLO2 DE RELLENADO DE ARRAYS USANDO FILL
// ----> CU00676B copiar comparar arrays java igualdad ejemplos ejercicios resueltos.pdf

// EJEMPLO 7. RELLENAR UNA PARTE DE UN ARRAY CON UN VALOR U OBJETO.

// Importación de la clase Arrays que permite Comparar, Ordenar y Buscar un valor u objeto dentro de él
import java.util.Arrays;

public class TestMetodoFillArraysUnaParte_CU00676B {
   
    public static void main (String [ ] Args) { //main cuerpo del programa ejemplo aprenderaprogramar.com
       
        // Declaración e Inicialización de una Lista Array Estatica
        int [ ] miArray = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
       
        // Se Rellena de la Lista myArray con 33 el rango desde el 2 al 4 (Inclusive)
        Arrays.fill(miArray, 2, 5, 33);
       
        // Se muestra en pantalla la Lista Array miArray
        for (int tmp: miArray) { //Recorrido del array con un for each
            System.out.print (tmp + ",");
        }
       
    } //Cierre del main
   
} //Cierre de la clase

Espero vuestros comentarios,

Muchas Gracias,

Saludos,

20
Hola, aquí dejo mi ejercicio del tema "CU00675B copiar comparar arrays java igualdad ejemplos ejercicios resueltos" para sus correcciones.

Código: [Seleccionar]
// EJERCICIO DE COPIA DE UN ARRAY A UN ARRAYLIST
// ----> CU00675B copiar comparar arrays java igualdad ejemplos ejercicios resueltos.pdf

import java.util.ArrayList; // Importación de la clase para el uso de listas ArrayList

public class TestCopiaArray_CU00675B {
   
    public static void main (String [ ] Args) {
       
        //Declaración de un ArrayList que contiene objetos Integer
        ArrayList<Integer> lista1;
        //Creación del objeto de tipo ArrayList
        lista1 = new ArrayList<Integer>();
       
        // Declaración e Inicialización de una Lista Array Estatica de enteros tipo int
        int [ ] miArray1 = {2, -4, 3, -7};
       
        // Se muestra en pantalla la Lista Array miArray1
        System.out.println("TENEMOS UN ARRAY ESTATICO COMPUESTO POR:");
        for (int i=0; i < miArray1.length; i++) {
            System.out.println ("miArray1[" + i +"]= " + miArray1[i]);
        }
        // Se realiza un salto de línea
        System.out.println("");
       
        // Se muestra en pantalla un mensaje avisando de la copia de miArray1 en lista1
        System.out.println("SE PROCEDE A LA COPIA DEL ARRAY ESTATICO <miArray1> EN EL ARRAYLIST <lista1>");
       
        // Se realiza la copia de miArray1 en lista1
        for (int i=0; i < miArray1.length; i++) {
            lista1.add(miArray1[i]);
        }
       
        //Se muestra en pantalla el contenido del ArrayList lista1
        int i = 0; // Inicialización de una variable temporal para hacer de contador
        System.out.println("Y TENEMOS UN ARRAYLIST COMPUESTO POR:");
        for (Integer valor: lista1) {
            System.out.println ("lista1[" + i + "]= " + valor);
            i++;
        }
       
        // Se muestra en pantalla un mensaje de finalización del programa
        System.out.println("Fin del Programa");
   
    } //Cierre del main
   
} //Cierre de la clase

Y respuestas a las preguntas:
Citar
¿Qué tipo de datos almacena el array?
Datos tipo int.

Citar
¿Qué tipo de datos almacena el ArrayList?
Datos tipo Integer

Espero vuestros comentarios,

Saludos,

Páginas: [1] 2

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