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

Páginas: 1 2 [3] 4 5
41
Hola a todos !!! Paso a dejar las respuestas del ejercicio CU00696B del curso básico de programación Java en pdf. Desde ya muchas gracias por la atención.
Saludos,
Luis

EJERCICIO

Responde a las siguientes preguntas:

a) ¿Una clase puede heredar de dos clases en Java?

Rta: No, Java no permite herencia múltiple.

b) ¿Una interface Java puede tener métodos que incluyan una sentencia while?

No, todo método es abstracto y público sin necesidad de declararlo. Al ser abstracto no tiene cuerpo.

¿Una interface Java puede tener métodos que incluyan una sentencia System.out.println?

No, los métodos tienen que estar vacíos(sin cuerpo) por ser abstractos.


c) ¿Un objeto Java puede ser del tipo definido por una interface?


Si, si se hace con 2 o más interfaces es lo que llamamos herencia múltiple en Java

¿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?


No (salvo que la clase herede de otra clase que SI implemente 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?

Si.

Para estas dos preguntas prefiero usar un muy buen ejemplo de Mario Rancel:

Sí se puede crear un objeto del tipo definido por una interface (como tipo estático).

Por ejemplo List <String> lista1 = new ArrayList<String> lista1 ();

List es una interface y ArrayList una clase concreta. El objeto es al mismo tiempo de tipo List y tipo ArrayList (polimorfismo).

El objeto no podrá ser de un tipo que no implemente la interface que es su tipo estático porque supondría una contradicción en la declaración de tipos. Ejemplo list1=new List<String>(); porque List es una interface

Sí puede ser del tipo definido por una interface y de una clase que implemente la interface como en el ejemplo List - ArrayList


42
Hola a todos !! Paso a dejar el código del ejercicio CU00695B del tutorial de programación Java e pdf. Desde ya muchas gracias. Saludos

Luis

EJERCICIO

Declara una clase abstracta Legislador que herede de la clase Persona, con un atributo provinciaQueRepresenta (tipo String) y otros atributos. Declara un método abstracto getCamaraEnQueTrabaja. Crea dos clases concretas que hereden de Legislador: la clase Diputado y la clase Senador que sobreescriban los métodos abstractos necesarios. Crea una lista de legisladores y muestra por pantalla la cámara en que trabajan haciendo uso del polimorfismo.

Clase Test -main-

Código: [Seleccionar]
public class Test {
    public static void main (String [ ] Args) {
        Diputado d1 = new Diputado("José Pablo", "Hernández López", 45, "Provincia del Norte", 125.30f, "Partido Liberal");
        Diputado d2 = new Diputado("Andrés Hugo", "Moltó Parra", 67, "Provincia del Sur", 134.25f, "Partido Socialista");
        Diputado d3 = new Diputado ("José Luis", "Ríos Mesa", 56, "Provincia del Centro", 99.87f, "Partido Democrata");
        Senador s1 = new Senador ("Juan José", "Pérez", 40, "Provincia del Oeste", 102.42f, "Asuntos Constitucionales");
        Senador s2 = new Senador ("Alberto Raúl", "Centa", 49, "Provincia del Este",112.20f, "Presupuesto y Hacienda");
        Senador s3 = new Senador ("Roberto José", "Mota", 44, "Provincia del Centro", 111.20f, "Educacion");
        ListinLegisladores listinLegislador = new ListinLegisladores ();
        listinLegislador.addLegislador (d1);
        listinLegislador.addLegislador (d2);
        listinLegislador.addLegislador (d3);
        listinLegislador.addLegislador (s1);
        listinLegislador.addLegislador (s2);
        listinLegislador.addLegislador (s3);
        listinLegislador.imprimirListin();
        System.out.println ("El importe de las dietas del Congreso que consta en el listín es " +
        listinLegislador.importeTotalDietaLegislador()+ " pesos");
    }  }   //Cierre del main y cierre de la clase

Clase Persona

Código: [Seleccionar]
public class Persona { //Código de la clase Persona ejemplo aprenderaprogramar.com
private String nombre;
private String apellidos;
private int edad;
public Persona() {
    nombre = "";
    apellidos = "";
    edad = 0; }
public Persona (String nombre, String apellidos, int edad) {
    this.nombre = nombre;
    this.apellidos = apellidos;
    this.edad = edad; }
public String getNombre() { return nombre;  }
public String getApellidos() { return apellidos;  }
public int getEdad() { return edad;  }
public String toString() { Integer datoEdad = edad;
return "Nombres: ".concat(nombre).concat(" - Apellidos: ").concat(apellidos).concat(" - Edad: ").concat(datoEdad.toString() ); } 
} //Cierre de la clase

Clase abstracta Legislador

Código: [Seleccionar]
public abstract class Legislador extends Persona {
    String provinciaQueRepresenta;
    float dieta=0;
    public Legislador () { super();
        provinciaQueRepresenta = ""; }
    public Legislador (String nombre, String apellidos, int edad, String provinciaQueRepresenta, float dieta ) {
        super(nombre, apellidos, edad);
        this.dieta=dieta;
        this.provinciaQueRepresenta = provinciaQueRepresenta; }
    // Métodos
    public void setProvinciaQueRepresenta (String provinciaQueRepresenta) {
        this.provinciaQueRepresenta = provinciaQueRepresenta; }
    public String getProvinciaQueRepresenta () { return provinciaQueRepresenta; }
    public float getDieta () { return dieta; }
    public String toString () { return super.toString().concat(" - Provincia: ").concat(provinciaQueRepresenta).concat(" - Dieta(unid): ").concat(String.valueOf(dieta)); }
    abstract public String getCamaraEnQueTrabaja(); // Método abstracto
    abstract public float dietaLegislador ();  // Método abstracto
    abstract public String datosLegislador(); // Método abstracto
} //Cierre de la clase

Clase Diputado

Código: [Seleccionar]
public class Diputado extends Legislador {
       String bloquePolitico = "";
       String camaraLegislativa = "Cámara de Diputados";
        // Constructor ejemplo aprenderaprogramar.com
        public Diputado(String nombre, String apellidos, int edad, String provinciaQueRepresenta, float dieta, String bloquePolitico) {
         super(nombre, apellidos, edad, provinciaQueRepresenta, dieta);
         this.bloquePolitico = bloquePolitico;}
        public String getBloquePolitico(){ return bloquePolitico;}
        public String getCamaraEnQueTrabaja(){ return camaraLegislativa;}
        public float dietaLegislador () { return TipoDeLegislador.DIPUTADO.getDietaBasica() * dieta; }  //Método abstracto sobreescrito en esta clase
        public String datosLegislador() { return bloquePolitico;}
} //Cierre de la clase

Clase Senador

Código: [Seleccionar]
public class Senador extends Legislador {
    String comisionParlamentaria="";
    String camaraLegislativa = "Cámara de Senadores";
    // Constructores
    public Senador (String nombre, String apellidos, int edad, String provinciaQueRepresenta, float dieta, String comisionParlamentaria) {
        super(nombre, apellidos, edad, provinciaQueRepresenta, dieta);
        this.comisionParlamentaria=comisionParlamentaria;}
    public String getComisionParlamentaria(){ return comisionParlamentaria;}
    public String getCamaraEnQueTrabaja(){ return camaraLegislativa;}
    public float dietaLegislador () { return TipoDeLegislador.SENADOR.getDietaBasica() * dieta ; } //Método abstracto sobreescrito en esta clase
    public String datosLegislador() { return comisionParlamentaria;}
} //Cierre de la clase

Clase ListinLegisladores

Código: [Seleccionar]
import java.util.ArrayList; import java.util.Iterator;
public class ListinLegisladores {
    private ArrayList <Legislador> listinLegisladores; //Campo de la clase 
    public ListinLegisladores () {  listinLegisladores = new ArrayList <Legislador> ();  } //Constructor
    public void addLegislador (Legislador legislador) {  listinLegisladores.add(legislador);  } //Método
    public void imprimirListin() {  //Método
        String tmpStr1 = ""; //String temporal que usamos como auxiliar
        String tmpStr2 = ""; //String temporal que usamos como auxiliar
        System.out.println ("Se procede a mostrar los datos de los Legisladores existentes en el listín \n");
        for (Legislador tmp: listinLegisladores) { System.out.println (tmp.toString () );
        if (tmp instanceof Diputado) { tmpStr1 = "Diputado"; tmpStr2="Bloque Politico: ";} else { tmpStr1 = "Senador"; tmpStr2="Comision Parlamentaria: "; }
        System.out.println("Lugar de Trabajo :"+(tmp.getCamaraEnQueTrabaja())+" - "+tmpStr2+(tmp.datosLegislador())+" - Tipo de legislador: "+tmpStr1+" - Dieta del legislador: "+(tmp.dietaLegislador())+"\n");}
    } //Cierre método imprimirListin
    public float importeTotalDietaLegislador() {
        float importeTotal = 0f; //Variable temporal que usamos como auxiliar
        Iterator<Legislador> it = listinLegisladores.iterator();
        while (it.hasNext() ) { importeTotal = importeTotal + it.next().dietaLegislador(); }
        return importeTotal;         
    } //Cierre del método importeTotalNominaProfesorado
} //Cierre de la clase ejemplo aprenderaprogramar.com

y mi infaltable clase enum   ;D

Código: [Seleccionar]
/**
 * Enumeration class DietaBasica - write a description of the enum class here
 *
 * @author (your name here)
 * @version (version number or date here)
 */
public enum TipoDeLegislador
{
    DIPUTADO(30f), SENADOR(40f);
    private final float dietaBasica;
    TipoDeLegislador(float dietaBasica){
        this.dietaBasica=dietaBasica;
    }
    public float getDietaBasica(){
    return dietaBasica;
    }
}

43
Hola a todos !!! Paso a dejar el código HTML del ejercico propuesto CU00722B del tutorial de programación HTML en pdf. Desde ya muchas gracias por su atención.

Saludos. Luis

EJERCICIO

Crea una página web que contenga un formulario de registro de usuarios que cumpla estas condiciones:

Como título principal de la página debe figurar con etiquetas h1 el texto “Solicitud de alta como usuario”. Debe contener un campo entrada de línea para solicitar el nombre. Debe contener un campo entrada de línea para solicitar los apellidos. Debe contener un campo entrada de línea para solicitar el correo electrónico. Debe contener un campo entrada de línea y tipo password para solicitar la contraseña. Debe contener un campo multilínea para solicitar observaciones. El formulario se debe enviar por el método get a la dirección de destino http://aprenderaprogramar.com

Código: [Seleccionar]
<!DOCTYPE html>
<html>
    <head>       
        <meta charset="utf-8">
        <title><h1>Solicitud de alta como usuario</h1></title>
    </head>
<body>
<form action="https://www.aprenderaprogramar.com" method="get">
<h2> Inscripción al Congreso para médicos especialistas</h2>
<p>
<label for="nombre">Nombre: </label>
<input type="text" name="nombre" id="nombre" />
<br/> <br/>
<label for="apellidos">Apellidos: </label>
<input type="text" name="apellidos" id="apellidos" />
<br/> <br/>
<label for="email">Correo electrónico: </label>
<input type="text" name="email" id="email" />
<br/> <br/>
<textarea name="observaciones" rows="5" cols="40">...Tus observaciones aquí...</textarea>
<br/> <br/>
<label for="pass">Password: </label>
<input type="password" name="pass" id="pass" value="abcdef" />
<br/> <br/>

<input type="submit" value="Enviar" />
<input type="reset" />
</p>
</form>
</body>
</html>

44
Hola a todos !! Paso a dejar el código en HTML del ejercicio propuesto en la clase CU00720B del tutorial pdf sobre HTML. Desde ya muchas gracias.
Saludos
Luis

EJERCICIO

Basándote en el código de ejemplo que hemos visto, crea una página web que cumpla con lo que indicamos a continuación:

a) Como título principal de la página debe figurar con etiquetas h1 el texto “Inscripción al Congreso de Medicina Santiago 2048”

b) Debe contener dos formularios: el primero será “Inscripción al Congreso para médicos especialistas” y el segundo “Inscripción al congreso para médicos generalistas”. Estos títulos deben figurar antes del formulario con etiquetas h2.

c) El formulario para médicos especialistas debe solicitar nombre, apellidos, especialidad y año de obtención de la especialidad.

d) El formulario para médicos generalistas debe solicitar nombre, apellidos, centro médico donde ejerce y año de obtención del título.
Código: [Seleccionar]
<!DOCTYPE html>
<html>
    <head>       
        <meta charset="utf-8">
        <title><h1>Inscripción al Congreso de Medicina Santiago 2048</h1></title>
    </head>
<body>
<form action="https://www.aprenderaprogramar.com" method="get">
<h2> Inscripción al Congreso para médicos especialistas</h2>
<p>
<label for="nombreE">Nombre: </label>
<input type="text" name="nombreE" id="nombreE">
<br/> <br/>
<label for="apellidoE">Apellido: </label>
<input type="text" name="apellidoE" id="apellidoE">
<br/> <br/>
<label for="especialidad">Especialidad: </label>
<input type="text" name="especialidad" id="IDespecialidad">
<br/> <br/>
<label for="anioEsp">Año de obtención de la especialidad: </label>
<input type="text" name="anioEsp" id="idAnioE">
<br/> <br/>
<input type="submit" value="Enviar">
<input type="reset">
</p>
</form>
<form action="https://www.aprenderaprogramar.com" method="get">
<h2> Inscripción al Congreso para médicos generalistas</h2>
<p>
<label for="nombreG">Nombre: </label>
<input type="text" name="nombreG" id="nombreG">
<br/> <br/>
<label for="apellidoG">Apellido: </label>
<input type="text" name="apellidoG" id="apellidoG">
<br/> <br/>
<label for="centroMedG">Centro Médico laboral: </label>
<input type="text" name="centroMedG" id="idCentroMG">
<br/> <br/>
<label for="anioTituloG">Año de obtención del título: </label>
<input type="text" name="anioTituloG" id="idAnioTitG">
<br/> <br/>
<input type="submit" value="Enviar">
<input type="reset">
</p>
</form>
</body>
</html>

45
Hola a todos !! Dejo a continuación las clases en respuesta al ejercicio propuesto CU00694B del tutorial de programación Java pdf. Desde ya muchas gracias.
Saludos, Luis

EJERCICIO
Define una clase Figura de la que hereden otras dos clases denominadas Cuadrado y Círculo. La clase figura debe tener al menos el campo dimensionPrincipal. Las clases Cuadrado y Círculo deben tener al menos un método calcularArea que permita calcular el área a partir de la dimensión principal, utilizando la fórmula matemática correspondiente. Además, sobreescribe el método equals para que dos cuadrados sean iguales si tienen igual dimensión principal, y dos círculos idem. A continuación crea un programa test donde crees varios círculos y cuadrados y hagas comprobaciones de igualdad usando el método equals.

Clase Figura
Código: [Seleccionar]
public class Figura
{
    private float dimensionPrincipal;

    public Figura(float dimensionPrincipal)  {   }

}

Clase Cuadrado
Código: [Seleccionar]
public class Cuadrado extends Figura
{
    protected float superficie;
    protected float lado;
    public Cuadrado(float lado){
    super(lado);
    this.lado = lado;
    calcularArea(lado);
    }

    public void calcularArea(float lado) {
    superficie = lado*lado;
    }

    public boolean equals (Object obj) {
        if (obj instanceof Cuadrado) {
            Cuadrado tmpCuadrado = (Cuadrado) obj;
            if (this.lado==tmpCuadrado.lado) {
                return true; } else { return false; }
        }  else { return false; }
    }
}

Clase Circulo
Código: [Seleccionar]
public class Circulo extends Figura
{
    protected float radio;
    protected double superficie;
    public Circulo(float radio) {
    super(radio);
    this.radio=radio;
    calcularArea(radio);   
    }

    public void calcularArea(float radio) {
        superficie=3.14*radio*radio;
    }
    public boolean equals (Object obj) {
        if (obj instanceof Circulo) {
            Circulo tmpCirculo = (Circulo) obj;
            if (this.radio==tmpCirculo.radio ) {
                return true; } else { return false; }
        }  else { return false; }
    }
}

Clase TestFiguras
Código: [Seleccionar]
public class TestFiguras{
    public static void main (String [ ] Args) {
        Cuadrado cuadrado1 = new Cuadrado(3);
        System.out.println("cuadrado 1 de lado:"+cuadrado1.lado+" y superficie:"+cuadrado1.superficie);
        Cuadrado cuadrado2 = new Cuadrado(3);
        System.out.println("cuadrado 2 de lado:"+cuadrado2.lado+" y superficie:"+cuadrado2.superficie);
        Cuadrado cuadrado3 = new Cuadrado(5);
        System.out.println("cuadrado 3 de lado:"+cuadrado3.lado+" y superficie:"+cuadrado3.superficie);
        System.out.println ("¿Son iguales cuadrado1 y cuadrado2? " + cuadrado1.equals(cuadrado2) );
        System.out.println ("¿Son el mismo objeto cuadrado1 y cuadrado2? " + (cuadrado1 == cuadrado2) );
        System.out.println ("¿Son iguales cuadrado1 y cuadrado3? " + cuadrado1.equals(cuadrado3) ); 
        Circulo circulo1 = new Circulo(2);
        System.out.println("circulo 1 de radio:"+circulo1.radio+" y superficie:"+circulo1.superficie);
        Circulo circulo2 = new Circulo(3);
        System.out.println("circulo 2 de radio:"+circulo2.radio+" y superficie:"+circulo2.superficie);
        Circulo circulo3 = new Circulo(2);
        System.out.println("circulo 3 de radio:"+circulo3.radio+" y superficie:"+circulo3.superficie);
        System.out.println ("¿Son iguales circulo1 y circulo2? " + circulo1.equals(circulo2) );
        System.out.println ("¿Son el mismo objeto circulo1 y circulo2? " + (circulo1 == circulo2) );
        System.out.println ("¿Son iguales circulo1 y circulo3? " + circulo1.equals(circulo3) ); 
    } //Cierre del main
} //Cierre de la clase

Resultado de la ejecución
Citar
cuadrado 1 de lado:3.0 y superficie:9.0
cuadrado 2 de lado:3.0 y superficie:9.0
cuadrado 3 de lado:5.0 y superficie:25.0
¿Son iguales cuadrado1 y cuadrado2? true
¿Son el mismo objeto cuadrado1 y cuadrado2? false
¿Son iguales cuadrado1 y cuadrado3? false
circulo 1 de radio:2.0 y superficie:12.56
circulo 2 de radio:3.0 y superficie:28.259999999999998
circulo 3 de radio:2.0 y superficie:12.56
¿Son iguales circulo1 y circulo2? false
¿Son el mismo objeto circulo1 y circulo2? false
¿Son iguales circulo1 y circulo3? true

46
Hola a todos !! Paso a dejar el código en HTML para el ejercicio de la clase CU00719B del tutorial de programación HTML en pdf. Desde ya muchas gracias. Saludos
Luis

Código: [Seleccionar]
<!DOCTYPE html>
<html>
    <head>       
        <meta charset="utf-8">
        <title>Ejemplo del uso de tablas- aprenderaprogramar.com</title>
    </head>
    <body>
        <table border="2px"> <!-- Lo cambiaremos por CSS -->
<tr>
                <th>Jefe departamento</th>
                <th>jefe sección</th>
                <th>Empleado</th>
<th>Edad empleado</th>
        </tr>
        <tr>
                <td rowspan="2">Juan Alberto Chan</td>
                <td>Martin López</td>
<td>Maite Suárez</td> 
                <td>55</td>
        </tr>
        <tr>
                <td>Luis Morales</td>
                <td>Mateo Carralde</td>           
                <td>33</td>
</tr>
<tr>
                <td>Diana Rodríguez</td>
                <td>Carlos Hernández</td>
<td>Alberto Fernández</td>
                <td>62</td>
        </tr>
<tr>
                <td colspan="2">Luis Pérez</td>
                <td>Diego Gutiérrez</td>
<td>44</td>
        </tr>
        </table>
    </body>
</html>

47
Hola a todos !! Paso a dejar el código y responder las preguntas del ejercicio propuesto en la clase CU00693B del tutorial de programación Java en pdf. Desde ya mcuhas gracias. Saludos,
Luis

EJERCICIO

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.

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. ¿Es posible sin utilizar una invocación a super ni un método get?
Si, es posible al declarar el atributo aniosConsolidados como protected -ver el código abajo-
¿Qué ocurre si el atributo en la superclase lo declaras private?
Si se declara private el atriburo aniosConsolidados y queremos acceder directamente aparecerá un error en la ejecución.

Clase Profesor
Código: [Seleccionar]
public class Profesor {  //Ejemplo aprenderaprogramar.com
    protected String nombre;
    protected int edad;
    protected int aniosConsolidados;
    public Profesor (String nombre, int edad, int aniosConsolidados) {
        this.nombre=nombre; this.edad=edad; this.aniosConsolidados=aniosConsolidados;
    }
    public void mostrarDatos() {
        System.out.println ("Datos Profesor. nombre: "+nombre+", edad: "+edad+", consolidados :"+aniosConsolidados);   }
} //Cierre de la clase

Clase ProfesorInterino
Código: [Seleccionar]
public class ProfesorEmerito extends Profesor {  //Ejemplo aprenderaprogramar.com
    private int aniosEmerito;
    private double salarioBase;
    public ProfesorEmerito (String nombre, int edad, int aniosConsolidados, int aniosEmerito) {
        super(nombre, edad, aniosConsolidados);
        this.aniosEmerito=aniosEmerito;
        obtenerSalarioBase();
    }
    public double obtenerSalarioBase(){
        salarioBase = (925+aniosConsolidados)*33.25 + (47.80*aniosEmerito);
        return salarioBase;
    }
    public void mostrarDatos() {
        super.mostrarDatos();
        System.out.println ("Años como profesor emérito :"+aniosEmerito+" con un salario base:"+salarioBase);   }
} //Cierre de la clase

Clase ListinProfesores
Código: [Seleccionar]
import java.util.ArrayList; //Ejemplo aprenderaprogramar.com
public class ListinProfesores{
    private ArrayList <Profesor> listinProfesores;
    //Constructor
    public ListinProfesores () {
        listinProfesores = new ArrayList <Profesor> (); }
    //Métodos
    public void addProfesor (Profesor profesor) {
        listinProfesores.add(profesor);}     // Cierre método addProfesor
    public void listar() {
        System.out.println ("Se procede a mostrar los datos de los profesores existentes en el listín");
        for (Profesor tmp: listinProfesores) {       //Uso de for extendido
            tmp.mostrarDatos();}
    } //Cierre método
} //Cierre de la clase

Clase Test -método main-
Código: [Seleccionar]
public class Test {
    public static void main (String [ ] Args) {
        ProfesorEmerito emerito1 = new ProfesorEmerito ("Juan Lopez", 53, 25,10);
        ProfesorEmerito emerito2 = new ProfesorEmerito("José Luis Perez", 54, 20, 5);
        ListinProfesores listin1 = new ListinProfesores ();
        listin1.addProfesor(emerito1);
        listin1.addProfesor(emerito2);
        listin1.listar();} //Cierre del main
} //Cierre de la clase

48
Hola a todos ! Dejo el código del ejercicio propuesto en la clase CU00692B del tutorial pdf de programación Java. Desde ya muchas gracias por la atención. Saludos

Luis

EJERCICIO
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). Un método de la superclase será double obtenerSalarioBase () que obtendrá el salario base como (725 + el número de años consolidados multiplicado por 33.25).

En la subclase se trabajará con el campo adicional añosEmerito. Queremos hacer lo siguiente: sobreescribir el método obtenerSalarioBase () en la subclase para calcular el salario base del profesor emérito invocando mediante la palabra clave super al cálculo del salario base de Profesor y añadiéndole la cantidad de (47.80 * añosEmerito).

Clase Profesor
Código: [Seleccionar]
public class Profesor {  //Ejemplo aprenderaprogramar.com
    private String nombre;
    private int edad;
    private int aniosConsolidados;
    private double salarioBase;
    public Profesor (String nombre, int edad, int aniosConsolidados) {
        this.nombre=nombre; this.edad=edad; this.aniosConsolidados=aniosConsolidados;
        salarioBase=0;
        obtenerSalarioBase();
    }
    public double obtenerSalarioBase(){
        salarioBase=(725+aniosConsolidados)*33.25;
        return salarioBase;}
    public void mostrarDatos() {
        System.out.println ("Datos Profesor. nombre: "+nombre+", edad: "+edad+", consolidados :"+aniosConsolidados);   }
    public void mostrarSalario(){
        System.out.println ("Salario base profesor:"+salarioBase);
    }
} //Cierre de la clase

Clase ProfesorEmerito
Código: [Seleccionar]
public class ProfesorEmerito extends Profesor {  //Ejemplo aprenderaprogramar.com
    private int aniosEmerito;
    private double salarioBase;
    public ProfesorEmerito (String nombre, int edad, int aniosConsolidados, int aniosEmerito) {
        super(nombre, edad, aniosConsolidados);
        this.aniosEmerito=aniosEmerito;
        obtenerSalarioBase();
    }
    public double obtenerSalarioBase(){
        salarioBase = super.obtenerSalarioBase() + (47.80*aniosEmerito);
        return salarioBase;
    }
    public void mostrarDatos() {
        super.mostrarDatos();
        System.out.println ("Años como profesor emérito :"+aniosEmerito);   }
    public void mostrarSalario(){
        System.out.println ("Salario base profesor emérito:"+salarioBase);
    }
   
} //Cierre de la clase

Clase ListinProfesores
Código: [Seleccionar]
import java.util.ArrayList; //Ejemplo aprenderaprogramar.com
public class ListinProfesores{
    private ArrayList <Profesor> listinProfesores;
    //Constructor
    public ListinProfesores () {
        listinProfesores = new ArrayList <Profesor> (); }
    //Métodos
    public void addProfesor (Profesor profesor) {
        listinProfesores.add(profesor);}     // Cierre método addProfesor
    public void listar() {
        System.out.println ("Se procede a mostrar los datos de los profesores existentes en el listín");
        for (Profesor tmp: listinProfesores) {       //Uso de for extendido
            tmp.mostrarDatos(); tmp.mostrarSalario();}
    } //Cierre método
} //Cierre de la clase

Clase Test (método main)
Código: [Seleccionar]
public class Test {
    public static void main (String [ ] Args) {
        Profesor profesor1 = new Profesor ("Juan Lopez", 53, 25);
        ProfesorEmerito emerito1 = new ProfesorEmerito("José Luis Perez", 54, 20, 10);
        ListinProfesores listin1 = new ListinProfesores ();
        listin1.addProfesor(profesor1);
        listin1.addProfesor(emerito1);
        listin1.listar();} //Cierre del main
} //Cierre de la clase

49
Hola a todos !! Dejo el código del ejercicio propuesto CU00718B del tutorial de programación HTML en pdf. Desde ya muchas gracias.

Saludos, Luis

EJERCICIO
Crea una lista ordenada cuyos elementos sean Doctores, Ayudantes y Auxiliares. Dentro de Doctores define una lista no ordenada cuyos elementos sean: Juana Pérez, Alberto Márquez, Raúl Moreno. Dentro de Ayudantes define una lista no ordenada cuyos elementos sean: Noelia Suárez, Abel Rebollo. Dentro de Auxiliares crea una lista no ordenada cuyos elementos sean Silvia Estévez, Angela González y Cuarthemoc Adanez. Separa cada lista con un elemento hr de color azul, 10 pixeles de grosor y que ocupe el 50% del ancho disponible.

Código: [Seleccionar]
<!DOCTYPE html>
<html>
    <head>       
        <meta charset="utf-8">
        <title>Ejemplo del uso de listas - aprenderaprogramar.com</title>
    </head>
<body>

<ol>
<li> Doctores </li>
<ul style="list-style-type:disc">
<li> Juana Pérez </li>
<li> Alberto Márquez </li>
<li> Raúl Moreno </li>
</ul>
<hr style="height:10px; background-color: blue; width:50%;" />
<li> Ayudantes </li>
<ul style="list-style-type:circle">
<li> Noelia Suárez </li>
<li> Abel Rebollo </li>
</ul>
<hr style="height:10px; background-color: blue; width:50%;" />
<li> Auxiliares </li>
<ul style="list-style-type:square">
<li> Silvia Estévez </li>
<li> Angela González </li>
<li> Cuarthemoc Adanez </li>
</ul>
</ol>
</body>
</html>

50
Hola a todos !! Paso a dejar el código del ejercicio CU00717B del tutorial de programación HTML en pdf. Desde ya muchas gracias.

Saludos, Luis

Código: [Seleccionar]
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Ejercicio CU00717B</title>
    </head>
<body>
    <a id="inicio"></a>
<h1><p style="text-align: center;">Animales de Africa</p></h1>
<h2><a id="leones">Leones</a></h2>
<p> El león (Panthera leo) es un mamífero carnívoro de la familia de los félidos y una de las cinco especies del género Panthera. Los leones salvajes viven en poblaciones cada vez más dispersas y fragmentadas del África subsahariana (a excepción de las regiones selváticas de la costa del Atlántico y la cuenca del Congo) y una pequeña zona del noroeste de India (una población en peligro crítico en el Parque nacional del Bosque de Gir y alrededores), habiendo desaparecido del resto de Asia del Sur, Asia Occidental, África del Norte y la península balcánica en tiempos históricos. Hasta finales del Pleistoceno, hace aproximadamente 10 000 años, de los grandes mamíferos terrestres, el león era el más extendido tras los humanos. Su distribución cubría la mayor parte de África, gran parte de Eurasia, desde el oeste de Europa hasta la India, y en América, desde el río Yukón hasta el sur de México. </p>
<a href="http://es.wikipedia.org/wiki/Panthera_leo" target="_blank">Pulse aquí para saber mas de leones</a>
<h2><a id="tigres">Tigres</a></h2>
<p>El tigre (Panthera tigris) es una de las cuatro​ especies de la subfamilia de los panterinos (familia Felidae) pertenecientes al género Panthera. Se encuentra solamente en el continente asiático; es un predador carnívoro y es la especie de félido más grande del mundo junto con el león pudiendo alcanzar ambos un tamaño comparable al de los felinos fósiles de mayor tamaño.</p>
<p>Existen seis subespecies de tigre, de las cuales la de Bengala es la más numerosa; sus ejemplares constituyen cerca del 80 % de la población total de la especie; se encuentra en la India, Bangladés, Bután, Birmania y Nepal. Es una especie en peligro de extinción, y en la actualidad, la mayor parte de los tigres en el mundo viven en cautiverio. El tigre es el animal nacional de Bangladesh y la India.</p>
<P>Es un animal solitario y territorial que generalmente suele habitar bosques densos, pero también áreas abiertas, como sabanas. Normalmente, el tigre caza animales de tamaño medio o grande, generalmente ungulados. En las seis diferentes subespecies existentes del tigre, hay una variación muy significativa del tamaño. Los tigres machos tienen un tamaño mucho mayor que el de las hembras. Análogamente, el territorio de un macho cubre generalmente un área mayor que el de una hembra.</p>
<a href="http://es.wikipedia.org/wiki/Panthera_tigris" title="Pulsa aquí para saber más sobre tigres" target="_blank"> <img src="https://cdn.iconverticons.com/files/png/5e5995d8150cea59_96x96.png?download=true"></a>
<p></p>
<a href="#inicio">Ir al inicio</a>
<p></p>
<a href="#leones">Ir a leones</a>
<p></p>
<a href="#tigres">Ir a tigres</a>
</body>
</html>

51
Hola a todos !! paso a dejar el código HTML del ejercicio propuesto CU00716B del tutorial de programación HTML en pdf. Desde ya muchas gracias.

Saludos, Luis

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title>Ejemplo del uso de separadores - aprenderaprogramar.com</title>
</head>
<body>
<p>Ejemplo 1</p>
<!--  sintaxis obsoleta (deprecated) -->
<hr size="5px" width="50%" align="center" color="red"/>
<!-- sintaxis CSS alternativa (basada en estilos) -->
<hr style="height: 5px;width: 50%;text-align: center;background-color: red;border: 0px solid #000;">
<p>Ejemplo 2</p>
<!--  sintaxis obsoleta (deprecated) -->
<hr size="2px" width="80%" noshade="noshade" align="right" />
<!-- sintaxis CSS alternativa (basada en estilos) -->
<hr style="height: 2px;width: 80%;text-align: right;background-color: gray;margin-right: 0px;border: 0px solid #000;">
</body>
</html>

52
Hola a todos !!Paso a dejar el codigo html del ejercicio propuesto CU00715B del tutorial gratuito de programación HTML de aprenderaprogramar. Desde ya muchas gracias. Saludos,

Luis

Código: [Seleccionar]
<!DOCTYPE html>
<html>
<head>
<title>fotos de mi viaje</title>
</head>
<body>

<h1>
 <p style="text-align: center;">Las fotos de mi viaje</p>
</h1>
<p>
Al final uno se instala, dice que va a dejar de viajar por un tiempo, que mejor quedarse quieto, y pasa lo mismo: surge un viaje. Acepté solo por una razón: Sue, la prima de mi mamá, húngara-canadiense, a quien no veía hacía cuatro años, iba a estar unos días en Salamanca, España. Miré el mapa: Biarritz – Salamanca 559 km. ¿Qué son 559 km?
</p>
<h2>
<p style="text-align: center;">Fotos de la primera parte del viaje</p>
<img src="https://viajandoporahi.com/wp-content/uploads/2014/10/salamanca-espa%C3%B1a-viajandoporahi-5.jpg" alt="Salamanca1">
<img src="https://viajandoporahi.com/wp-content/uploads/2014/10/salamanca-espa%C3%B1a-viajandoporahi-24.jpg" alt="Salamanca2">
</h2>
<h2>
<p style="text-align: center;">Fotos de la segunda parte del viaje</p>
<img src="https://viajandoporahi.com/wp-content/uploads/2014/10/salamanca-espa%C3%B1a-viajandoporahi-27.jpg" alt="Salamanca3">
<img src="https://viajandoporahi.com/wp-content/uploads/2014/10/salamanca-espa%C3%B1a-viajandoporahi-26.jpg" alt="Salamanca4">
</h2>
<pre>
Los viajes …son libertad
… son amistad
… son crecimiento personal

¡No desaproveches una oportunidad!
</pre>
</body>
</html>

53
Hola a todos !! paso a dejar el ejercicio propuesto CU00714B del tutorial gratuito de programación HTML de aprenderaprogramar. Desde ya muchas gracias por la atención.
Saludos, Luis

EJERCICIO

Abre cuatro páginas web distintas y captura la ruta de 4 imágenes que puedas encontrar en ellas (las imágenes que prefieras). A continuación crea un documento html donde incorpores un texto que indique el contenido de la imagen y a continuación se vea la imagen. Guarda el documento con un nombre como ejemploCU00714B.html y comprueba que se visualiza correctamente. Ejemplo:

Imagen que refleja una boda:
 (… aquí la imagen)
Imagen que muestra un mercado:
(… aquí la imagen)
Imagen que muestra un atleta:
(… aquí la imagen)
Imagen que refleja un atardecer:
(… aquí la imagen)

Código: [Seleccionar]
<!DOCTYPE html>
<meta charset="utf-8">
<html>
<head>
<title>Ejemplo del uso de imágenes - aprenderaprogramar.com</title>
</head>
<body>
Imagen que refleja una boda:
<img src="http://www.agradecimientos.org/wp-content/uploads/2015/01/palabras-de-agradecimiento-de-boda.jpg" alt="imagen boda">

Imagen que muestra un mercado:
<img src="http://guias-viajar.com/wp-content/uploads/2014/05/fotos-valencia-mercado-central-007-450x309.jpg" alt="imagen mercado">

Imagen que muestra un atleta :
<img src="https://sc2.diarioelpais.com/files/article_default_content/uploads/2017/09/10/59b56c1f48598.jpeg" alt="imagen atleta">

Imagen que refleja un atardecer :
<img src="https://miviaje.com/wp-content/uploads/2015/11/shutterstock_255555796.jpg" alt="imagen atardecer">
</body>
</html>

54
Hola a todos !! Paso a responder el ejercicio sobre HTML. Desde ya muchas gracias.
Saludos, Luis

EJERCICIO
En el siguiente código hay elementos que en las versiones más recientes de HTML se consideran deprecated o not supported. Escribe el código en un editor de textos como el bloc de notas o Notepad++, guárdalo con un nombre como ejemplo.html y visualízalo en tu navegador.

Responde a las siguientes preguntas:

¿Qué etiquetas de las empleadas sería recomendable no utilizar y reemplazar mediante uso de técnicas CSS?
Código: [Seleccionar]
<!DOCTYPE html>
<meta charset="utf-8">
<html>
<head>
<title>Ejemplo 01 del curso HTML - aprenderaprogramar.com</title>
</head>
  <body text="green" bgcolor="white">
<pre>
Ejemplo básico: uso de etiquetas de formato y atributos básicos para la etiqueta body.
<strong>negrita</strong>
<em>Cursiva</em>
<del>Subrayado</del>
<big>Grande</big>
<small>pequeño</small>
Esto es un<sub>subíndice</sub>
Y esto un<sup>superíndice</sup>
</pre>
  </body>
</html>

Has dos etiquetas consideradas deprecated (o no soportadas) y que no deberían usarse: body text y body bgcolor.

Las siguientes etiquetas usadas deberian ser reemplazadas por hojas de estilo(CSS) : strong, em, del, big, small, sub y sup.

55
Hola a todos !! Paso a dejar las respuestas y el código del ejercicio propuesto CU00690B del curso básico de programación en Java desde cero. Desde ya muchas gracias. Saludos Luis

EJERCICIO

Responde a las siguientes preguntas:

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?
NO. Salvo que usemos "enmascaramiento de tipos"  explicado en la clase anterior. Ejemplo:
 Vehiculo v1 = new Vehiculo()
 Taxi t1 = new Taxi()
 t1=(Taxi)v1
Para verificar si podemos hacerlo debemos usar instanceof en una consulta. En el ejemplo que pongo a continuación no marca error en el compilado pero si en la ejecución.

b) ¿Un objeto de tipo estático declarado Vehiculo puede contener a un objeto Taxi en tiempo de ejecución?
SI. al ser Vehiculo una superclase de Taxi lo puede contener.

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]
/**
 * Write a description of class Vehiculo here.
 *
 * @author Luis
 * @version CU00690B
 */
public class Vehiculo
{
    // instance variables - replace the example below with your own
    private String matricula;
    private int numeroDeRuedas;
    public Vehiculo(String matricula, int numeroDeRuedas)
    {
        this.matricula=matricula;
        this.numeroDeRuedas=numeroDeRuedas;
    }
    /**
     * Constructor for objects of class Vehiculo
     */
    public Vehiculo()
    {
        // initialise instance variables
        matricula = "";
        numeroDeRuedas = 0;
    }
    /**
     * @param matricula Matricula del vehiculo
     */
    public void setMatricula(String matricula) {
        this.matricula = matricula;
    }
    /**
     * @param numeroDeRuedas Cantidad de ruedas
     */
    public void setNumeroDeRuedas(int numeroDeRuedas) {
        this.numeroDeRuedas = numeroDeRuedas;
    }
    /**
     * @return la matricula del vehiculo
     */
    public String getMatricula() {return matricula;}
    /**
     * @return el numero de ruedas
     */
    public int getNumeroDeRuedas() {return numeroDeRuedas;}
    public String toString(){
        String mensaje="el vehiculo es :"+matricula+" y la cantidad de ruedas es :"+numeroDeRuedas;
        return mensaje;
    }
}

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]
/**
 * Write a description of class Taxi here.
 *
 * @author Luis
 * @version CU00690B
 */
public class Taxi extends Vehiculo
{
    // instance variables - replace the example below with your own
    private String nombreDelConductor;
    private int numeroDePlazas;
    /**
     * Constructor for objects of class Taxi
     */
    public Taxi()
    {
        nombreDelConductor = "";
        numeroDePlazas = 0;
    }
    public Taxi(String matricula, int cantidadDeRuedas, String nombreDelConductor,int numeroDePlazas)
    {
     super(matricula, cantidadDeRuedas);
     this.nombreDelConductor=nombreDelConductor;
     this.numeroDePlazas=numeroDePlazas;
    }
    /**
     * @param nombreDelConductor Nombre del chofer
     */
    public void setNombreDelConductor(String nombreDelConductor) {
        this.nombreDelConductor = nombreDelConductor;
    }

    /**
     * @param numeroDePlazas numero de plazas
     */
    public void setNumeroDePlazas(int numeroDePlazas) {
        this.numeroDePlazas = numeroDePlazas;
    }

    /**
     * @return el nombre del chofer
     */
    public String getNombreDelConductor() {return nombreDelConductor;}

    /**
     * @return el numero de plazas
     */
    public int getNumeroDePlazas() {return numeroDePlazas;}

    public String toString(){
        String mensaje="es manejado por :"+nombreDelConductor+" y el numero de plazas es :"+numeroDePlazas;
        return mensaje;
    }
}

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]
/**
 * Write a description of class Test here.
 *
 * @author Luis
 * @version CU00690B
 */
public class Test
{
    public static void main (String [ ] Args) {
        // declaramos la valirable o puntero del tipo Vehiculo - TIPO ESTATICO
        Vehiculo taxi;
        // creamos el objeto - TIPO DINAMICO 
        taxi = new Taxi("ASD 1234",4,"JUAN PEREZ",3);

        System.out.println(taxi.toString());
    }
}

El resultado de la ejecucion es :
es manejado por :JUAN PEREZ y el numero de plazas es :3
En este ejercicio dividí la declaración de la variable con la construcción del objeto.
El tipo ESTATICO es Vehiculo (lo que  controla el compilador)
        Vehiculo taxi;
O sea, podemos usar los metodos getters y setters de la clase Vehiculo, pero al asignarle en forma DINAMICA Taxi en la construcción:
        taxi = new Taxi("ASD 1234",4,"JUAN PEREZ",3);
vamos a poder usar aquellos métodos que se llamen en forma igual, como por ejemplo toString(). Al invocar ese método no devuelve el de la clase Taxi y a eso se le llama sobreescribir métodos.



56
Hola a todos !! Paso a dejar la respuesta al ejercicio propuesto CU00688B del curso de programación básica con Java. Desde ya muchas gracias. Saludos. Luis

EJERCICIO
Amplía el código del programa Java que planteamos como ejercicio en la entrega CU00687 de este curso, relativo a la gestión de una empresa agroalimentaria, teniendo en cuenta que la empresa gestiona envíos a través de diferentes medios, y un envío puede contener cierto número de productos frescos, refrigerados o congelados. Añade al código:

a) Una clase EnvioDeProductos que represente un envío de productos como colección de objetos que admite el polimorfismo.

b) Crear una clase testHerencia4 con el método main donde se creen: dos productos frescos, tres productos refrigerados y cinco productos congelados (2 de ellos congelados por agua, otros 2 por aire y 1 por nitrógeno). Crear un envío que represente la agrupación de los anteriores productos. Mostrar por pantalla la información del número de productos que componen el envío y recorrer los productos del envío usando iterator para mostrar la información (valor de los atributos) de cada uno de ellos.

Clase principal

Código: [Seleccionar]
import java.util.*; //Importación del código de la clase Scanner desde la biblioteca Java
public class TestHerencia4 {
    public static void main (String [ ] args) {
       TipoDeProducto tipoProducto=TipoDeProducto.FRESCO;
       TipoDeCongelado tipoCongelado=TipoDeCongelado.AIRE;
       Calendar fechaEnvasado;
       Calendar fechaCaducidad;
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       int dia=0;
       int mes=0;
       int anio=0;
      //
       EnvioDeProductos lista = new EnvioDeProductos("Lista de productos");
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       dia=8; mes=8; anio=2017;
       fechaEnvasado.set(Calendar.DAY_OF_MONTH,dia);
       fechaEnvasado.set(Calendar.MONTH,mes-1);
       fechaEnvasado.set(Calendar.YEAR,anio);
       dia=28; mes=8; anio=2017;
       fechaCaducidad.set(Calendar.DAY_OF_MONTH,dia);
       fechaCaducidad.set(Calendar.MONTH,mes-1);
       fechaCaducidad.set(Calendar.YEAR,anio);
       ProductoFresco prodFres1 = new ProductoFresco("PROD. FRESCO 1", 11, "ARGENTINA", tipoProducto.FRESCO, fechaEnvasado, fechaCaducidad);
       lista.addLista(prodFres1.getNombreProducto(),prodFres1.getNroLote(),prodFres1.getPaisOrigen(),prodFres1.getTipoDeProducto(),prodFres1.getFechaEnvasado(),prodFres1.getFechaCaducidad());
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       dia=9; mes=8; anio=2017;
       fechaEnvasado.set(Calendar.DAY_OF_MONTH,dia);
       fechaEnvasado.set(Calendar.MONTH,mes-1);
       fechaEnvasado.set(Calendar.YEAR,anio);
       dia=29; mes=8; anio=2017;
       fechaCaducidad.set(Calendar.DAY_OF_MONTH,dia);
       fechaCaducidad.set(Calendar.MONTH,mes-1);
       fechaCaducidad.set(Calendar.YEAR,anio);
       ProductoFresco prodFres2 = new ProductoFresco("PROD. FRESCO 2", 12, "CHILE", tipoProducto.FRESCO, fechaEnvasado, fechaCaducidad);
       lista.addLista(prodFres2.getNombreProducto(),prodFres2.getNroLote(),prodFres2.getPaisOrigen(),prodFres2.getTipoDeProducto(),prodFres2.getFechaEnvasado(),prodFres2.getFechaCaducidad());
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       dia=10; mes=9; anio=2017;
       fechaEnvasado.set(Calendar.DAY_OF_MONTH,dia);
       fechaEnvasado.set(Calendar.MONTH,mes-1);
       fechaEnvasado.set(Calendar.YEAR,anio);
       dia=22; mes=10; anio=2017;
       fechaCaducidad.set(Calendar.DAY_OF_MONTH,dia);
       fechaCaducidad.set(Calendar.MONTH,mes-1);
       fechaCaducidad.set(Calendar.YEAR,anio);
       ProductoRefrigerado prodRefr1 = new ProductoRefrigerado("PROD. REFRIGERADO 1", 21, "URUGUAY", tipoProducto.REFRIGERADO, fechaEnvasado, fechaCaducidad, 1.5, "ORG.SUPERVISION 1");
       lista.addLista(prodRefr1.getNombreProducto(),prodRefr1.getNroLote(),prodRefr1.getPaisOrigen(),prodRefr1.getTipoDeProducto(),prodRefr1.getFechaEnvasado(),prodRefr1.getFechaCaducidad());
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       dia=11; mes=9; anio=2017;
       fechaEnvasado.set(Calendar.DAY_OF_MONTH,dia);
       fechaEnvasado.set(Calendar.MONTH,mes-1);
       fechaEnvasado.set(Calendar.YEAR,anio);
       dia=31; mes=10; anio=2017;
       fechaCaducidad.set(Calendar.DAY_OF_MONTH,dia);
       fechaCaducidad.set(Calendar.MONTH,mes-1);
       fechaCaducidad.set(Calendar.YEAR,anio);
       ProductoRefrigerado prodRefr2 = new ProductoRefrigerado("PROD. REFRIGERADO 2", 22, "BOLIVIA", tipoProducto.REFRIGERADO, fechaEnvasado, fechaCaducidad, 1.6, "ORG.SUPERVISION 2");
       lista.addLista(prodRefr2.getNombreProducto(),prodRefr2.getNroLote(),prodRefr2.getPaisOrigen(),prodRefr2.getTipoDeProducto(),prodRefr2.getFechaEnvasado(),prodRefr2.getFechaCaducidad());
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       dia=5; mes=9; anio=2017;
       fechaEnvasado.set(Calendar.DAY_OF_MONTH,dia);
       fechaEnvasado.set(Calendar.MONTH,mes-1);
       fechaEnvasado.set(Calendar.YEAR,anio);
       dia=25; mes=10; anio=2017;
       fechaCaducidad.set(Calendar.DAY_OF_MONTH,dia);
       fechaCaducidad.set(Calendar.MONTH,mes-1);
       fechaCaducidad.set(Calendar.YEAR,anio);
       ProductoRefrigerado prodRefr3 = new ProductoRefrigerado("PROD. REFRIGERADO 3", 23, "PARAGUAY", tipoProducto.REFRIGERADO, fechaEnvasado, fechaCaducidad, 1.7, "ORG.SUPERVISION 3");
       lista.addLista(prodRefr3.getNombreProducto(),prodRefr3.getNroLote(),prodRefr3.getPaisOrigen(),prodRefr3.getTipoDeProducto(),prodRefr3.getFechaEnvasado(),prodRefr3.getFechaCaducidad());
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       dia=7; mes=8; anio=2017;
       fechaEnvasado.set(Calendar.DAY_OF_MONTH,dia);
       fechaEnvasado.set(Calendar.MONTH,mes-1);
       fechaEnvasado.set(Calendar.YEAR,anio);
       dia=27; mes=12; anio=2017;
       fechaCaducidad.set(Calendar.DAY_OF_MONTH,dia);
       fechaCaducidad.set(Calendar.MONTH,mes-1);
       fechaCaducidad.set(Calendar.YEAR,anio);
       ProductoCongeladoPorAgua prodCongAgua1 = new ProductoCongeladoPorAgua("PROD. CONG x AGUA 1", 31, "PERU", tipoProducto.CONGELADO, fechaEnvasado, fechaCaducidad, -10.5, tipoCongelado.AGUA, 20);
       lista.addLista(prodCongAgua1.getNombreProducto(),prodCongAgua1.getNroLote(),prodCongAgua1.getPaisOrigen(),prodCongAgua1.getTipoDeProducto(),prodCongAgua1.getFechaEnvasado(),prodCongAgua1.getFechaCaducidad());
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       dia=9; mes=8; anio=2017;
       fechaEnvasado.set(Calendar.DAY_OF_MONTH,dia);
       fechaEnvasado.set(Calendar.MONTH,mes-1);
       fechaEnvasado.set(Calendar.YEAR,anio);
       dia=29; mes=1; anio=2018;
       fechaCaducidad.set(Calendar.DAY_OF_MONTH,dia);
       fechaCaducidad.set(Calendar.MONTH,mes-1);
       fechaCaducidad.set(Calendar.YEAR,anio);
       ProductoCongeladoPorAgua prodCongAgua2 = new ProductoCongeladoPorAgua("PROD. CONG x AGUA 2", 32, "ECUADOR", tipoProducto.CONGELADO, fechaEnvasado, fechaCaducidad, -10.6, tipoCongelado.AGUA, 21);
       lista.addLista(prodCongAgua2.getNombreProducto(),prodCongAgua2.getNroLote(),prodCongAgua2.getPaisOrigen(),prodCongAgua2.getTipoDeProducto(),prodCongAgua2.getFechaEnvasado(),prodCongAgua2.getFechaCaducidad());
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       dia=3; mes=8; anio=2017;
       fechaEnvasado.set(Calendar.DAY_OF_MONTH,dia);
       fechaEnvasado.set(Calendar.MONTH,mes-1);
       fechaEnvasado.set(Calendar.YEAR,anio);
       dia=31; mes=12; anio=2017;
       fechaCaducidad.set(Calendar.DAY_OF_MONTH,dia);
       fechaCaducidad.set(Calendar.MONTH,mes-1);
       fechaCaducidad.set(Calendar.YEAR,anio);
       ProductoCongeladoPorAire prodCongAire1 = new ProductoCongeladoPorAire("PROD. CONG x AIRE 1", 41, "BRASIL", tipoProducto.CONGELADO, fechaEnvasado, fechaCaducidad, -10.7, tipoCongelado.AIRE, 1, 2, 3, 4);
       lista.addLista(prodCongAire1.getNombreProducto(),prodCongAire1.getNroLote(),prodCongAire1.getPaisOrigen(),prodCongAire1.getTipoDeProducto(),prodCongAire1.getFechaEnvasado(),prodCongAire1.getFechaCaducidad());
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       dia=4; mes=8; anio=2017;
       fechaEnvasado.set(Calendar.DAY_OF_MONTH,dia);
       fechaEnvasado.set(Calendar.MONTH,mes-1);
       fechaEnvasado.set(Calendar.YEAR,anio);
       dia=24; mes=12; anio=2017;
       fechaCaducidad.set(Calendar.DAY_OF_MONTH,dia);
       fechaCaducidad.set(Calendar.MONTH,mes-1);
       fechaCaducidad.set(Calendar.YEAR,anio);
       ProductoCongeladoPorAire prodCongAire2 = new ProductoCongeladoPorAire("PROD. CONG x AIRE 2", 42, "COLOMBIA", tipoProducto.CONGELADO, fechaEnvasado, fechaCaducidad, -10.8, tipoCongelado.AIRE, 5, 6, 7, 8);               
       lista.addLista(prodCongAire2.getNombreProducto(),prodCongAire2.getNroLote(),prodCongAire2.getPaisOrigen(),prodCongAire2.getTipoDeProducto(),prodCongAire2.getFechaEnvasado(),prodCongAire2.getFechaCaducidad());
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       dia=5; mes=8; anio=2017;
       fechaEnvasado.set(Calendar.DAY_OF_MONTH,dia);
       fechaEnvasado.set(Calendar.MONTH,mes-1);
       fechaEnvasado.set(Calendar.YEAR,anio);
       dia=25; mes=12; anio=2017;
       fechaCaducidad.set(Calendar.DAY_OF_MONTH,dia);
       fechaCaducidad.set(Calendar.MONTH,mes-1);
       fechaCaducidad.set(Calendar.YEAR,anio);
       ProductoCongeladoPorNitrogeno prodCongNitrogeno1 = new ProductoCongeladoPorNitrogeno("PROD. CONG x NITROGENO 1", 51, "VENEZUELA", tipoProducto.CONGELADO, fechaEnvasado, fechaCaducidad, -10.9, tipoCongelado.NITROGENO, 10, "METODO NITROGENO");
       lista.addLista(prodCongNitrogeno1.getNombreProducto(),prodCongNitrogeno1.getNroLote(),prodCongNitrogeno1.getPaisOrigen(),prodCongNitrogeno1.getTipoDeProducto(),prodCongNitrogeno1.getFechaEnvasado(),prodCongNitrogeno1.getFechaCaducidad());
       Iterator <Producto> it=lista.iterator();
        while(it.hasNext()){
            Producto itemLista;
            itemLista=(Producto)it.next(); // objeto de la lista que estamos viendo
            dia = itemLista.getFechaEnvasado().get(Calendar.DAY_OF_MONTH);
            mes = itemLista.getFechaEnvasado().get(Calendar.MONTH)+1;
            anio = itemLista.getFechaEnvasado().get(Calendar.YEAR);
            String strFechaEnvasado = dia+"/"+mes+"/"+anio;
            dia = itemLista.getFechaCaducidad().get(Calendar.DAY_OF_MONTH);
            mes = itemLista.getFechaCaducidad().get(Calendar.MONTH)+1;
            anio = itemLista.getFechaCaducidad().get(Calendar.YEAR);
            String strFechaCaducidad = dia+"/"+mes+"/"+anio;
            System.out.println(itemLista.getNombreProducto()+"  lote :"+itemLista.getNroLote() + "  origen :"+itemLista.getPaisOrigen()+"  tipo :"+itemLista.getTipoDeProducto()+ "  envasado :"+strFechaEnvasado+"  Vence :"+strFechaCaducidad);
        }
    }
}


Clase Producto

Código: [Seleccionar]
import java.util.*;

/**
 * Write a description of class Producto here.
 *
 * @author Luis
 * @version CU00688B
 */
public class Producto
{
    // instance variables - replace the example below with your own
    public String nombreProducto;
    public int nroLote;
    public String paisOrigen;
    TipoDeProducto tipoProducto;
    Calendar fechaEnvasado;
    Calendar fechaCaducidad;
   
    /**
     * Constructor for objects of class Productos
     */
    public Producto()
    {
        // initialise instance variables
        nombreProducto = "";
        nroLote = 0;
        paisOrigen = "";
        fechaEnvasado.getInstance();
        fechaCaducidad.getInstance();
    }
   
    public Producto(String nombreProducto, int nroLote, String paisOrigen, TipoDeProducto tipoProducto, Calendar fechaEnvasado, Calendar fechaCaducidad){
        this.nombreProducto=nombreProducto;
        this.nroLote=nroLote;
        this.paisOrigen=paisOrigen;
        this.tipoProducto=tipoProducto;
        this.fechaEnvasado=fechaEnvasado;
        this.fechaCaducidad=fechaCaducidad;
    }
    // metodos setters
     /**
     * @param nombreProducto Descripcion del producto
     */
    public void setNombreProducto(String nombreProducto){
       this.nombreProducto=nombreProducto;
    }
     /**
     * @param nroLote Numero de lote del producto
     */
    public void setNroLote(int nroLote){
        this.nroLote=nroLote;
    }
     /**
     * @param tipoProducto enun FRESCO, REFRIGERADO, CONGELADO
     */
    public void setTipoProducto(TipoDeProducto tipoProducto) {
       this.tipoProducto=tipoProducto;
    }
     /**
     * @param paisOrigen Nombre del pais de origen del producto
     */
    public void setPaisOrigen(String xPais){
        this.paisOrigen = paisOrigen;
    }
     public void setFechaEnvasado(Calendar fechaEnvasado){
        this.fechaEnvasado = fechaEnvasado;
    }
    public void setFechaCaducidad(Calendar fechaCaducidad){
        this.fechaCaducidad = fechaCaducidad;
    }
    // metodos getters
    /**
    * @return Nombre del producto (String)
    */
    public String getNombreProducto(){
        return nombreProducto;
    }
    /**
    * @return Número de lote (int)
    */
    public int getNroLote(){
        return nroLote;
    }
    /**
    * @return Nombre del producto (String)
    */
    public String getPaisOrigen(){
        return paisOrigen;
    }
    /**
    * @return El tipo de producto (enum)
    */
    public TipoDeProducto getTipoDeProducto(){
        return tipoProducto;               
    }
    /**
     * @return Fecha de envasado del producto (Calendar)
     */
    public Calendar getFechaEnvasado(){
        return fechaEnvasado;
    }

    /**
     * @return Fecha de vencimiento del producto (Calendar)
     */
    public Calendar getFechaCaducidad(){
        return fechaCaducidad;
    }
}


ProductoFresco

Código: [Seleccionar]
import java.util.*;

/**
 * Write a description of class ProductoFresco here.
 *
 * @author Luis
 * @version CU00688B
 */
public class ProductoFresco extends Producto {
    public ProductoFresco() {
    }
    public ProductoFresco(String nomProd, int lote, String xPais, TipoDeProducto tipoDeProducto, Calendar fechaEnvasado, Calendar fechaCaducidad) {
        super(nomProd, lote, xPais, tipoDeProducto, fechaEnvasado, fechaCaducidad);
    }
}

ProductoConservadoEnFrio
Código: [Seleccionar]
import java.util.*;
/**
 * Write a description of class ProductoConservadoEnFrio here.
 *
 * @author Luis
 * @version CU00688B
 */
public class ProductoConservadoEnFrio extends Producto
{
    private double temperaturaMantenimiento;
    public ProductoConservadoEnFrio() {
    }
    public ProductoConservadoEnFrio(String nomProd, int lote, String xPais, TipoDeProducto tipoProducto, Calendar fechaEnvasado, Calendar fechaCaducidad, double temperaturaMantenimiento) {
        // initialise instance variables
       super(nomProd, lote, xPais, tipoProducto, fechaEnvasado, fechaCaducidad);
       this.temperaturaMantenimiento=temperaturaMantenimiento;
    }
    /**
     * @param codigoOrganismoSupervision El Organismo que controla el producto
     */
    /**
     * @param temperaturaMantenimiento La temperatura para mantener el producto refrigerado
     */
    public void setTemperaturaMantenimiento(double temperaturaMantenimiento){
    this.temperaturaMantenimiento = temperaturaMantenimiento;
    }
     /**
     * @return La temperatura para mantener el producto refrigerado (double)
     */
    public double getTemperaturaMantenimiento() {
        return temperaturaMantenimiento;
    }
}


ProductoRefrigerado

Código: [Seleccionar]
import java.util.*;
/**
 * Write a description of class ProductoRefrigerado here.
 *
 * @author Luis
 * @version CU00688B
 */
public class ProductoRefrigerado extends ProductoConservadoEnFrio
{
    public String organismoSupervision;
    public ProductoRefrigerado() {
    }
    public ProductoRefrigerado(String nomProd, int lote, String xPais, TipoDeProducto tipoProducto, Calendar fechaEnvasado, Calendar fechaCaducidad, double temperaturaMantenimiento, String organismoSupervision) {
        // initialise instance variables
       super(nomProd, lote, xPais, tipoProducto, fechaEnvasado, fechaCaducidad, temperaturaMantenimiento);
       this.organismoSupervision=organismoSupervision;
    }
    /**
     * @param codigoOrganismoSupervision El Organismo que controla el producto
     */
    public void setOrganismoSupervision(String codigoOrganismoSupervision){
    this.organismoSupervision = organismoSupervision;
    }
     /**
     * @return El Organismo que controla el producto (String)   
     */
    public String getOrganismoSupervision() {
        return organismoSupervision;
    }
}


ProductoCongelado

Código: [Seleccionar]
import java.util.*;
/**
 * Write a description of class ProductoCongelado here.
 *
 * @author Luis
 * @version CU00688B
 */
public class ProductoCongelado extends ProductoConservadoEnFrio {
    TipoDeCongelado tipoCongelado;
    public ProductoCongelado() {
    }
    public ProductoCongelado(String nomProd, int lote, String xPais, TipoDeProducto tipoProducto, Calendar fechaEnvasado, Calendar fechaCaducidad, double temperaturaMantenimiento, TipoDeCongelado tipoCongelado) {
       super(nomProd, lote, xPais, tipoProducto, fechaEnvasado, fechaCaducidad, temperaturaMantenimiento);
       this.tipoCongelado=tipoCongelado;
    }
    /**
     * @param tipoCongelado enun AIRE, AGUA, NITROGENO
     */
    public void setTipoCongelado(TipoDeCongelado tipoCongelado) {
        this.tipoCongelado = tipoCongelado;
    }
       /**
    * @return El tipo de congelado (enum)
    */
    public TipoDeCongelado getTipoDeCongelado(){
        return tipoCongelado;               
    }
}

57
Hola a todos, paso a publicar el código del ejercicio y 2 imagenes sobre la vinculacion entre las clases. Desde ya muchas gracias.
Saludos
Luis




Clase Herencia3 con el metodo main
Código: [Seleccionar]
import java.util.*; //Importación del código de la clase Scanner desde la biblioteca Java
public class TestHerencia3 {
    public static void main (String [ ] args) {
       TipoDeProducto tipoProducto=TipoDeProducto.FRESCO;
       TipoDeCongelado tipoCongelado=TipoDeCongelado.AIRE;
       Calendar fechaEnvasado;
       Calendar fechaCaducidad;
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       int dia=0;
       int mes=0;
       int anio=0;
      //
       ListaProductos lista = new ListaProductos("Lista de productos");
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       dia=8; mes=8; anio=2017;
       fechaEnvasado.set(Calendar.DAY_OF_MONTH,dia);
       fechaEnvasado.set(Calendar.MONTH,mes-1);
       fechaEnvasado.set(Calendar.YEAR,anio);
       dia=28; mes=8; anio=2017;
       fechaCaducidad.set(Calendar.DAY_OF_MONTH,dia);
       fechaCaducidad.set(Calendar.MONTH,mes-1);
       fechaCaducidad.set(Calendar.YEAR,anio);
       ProductoFresco prodFres1 = new ProductoFresco("PROD. FRESCO 1", 11, "ARGENTINA", tipoProducto.FRESCO, fechaEnvasado, fechaCaducidad);
       lista.addLista("PROD. FRESCO 1", 11, "ARGENTINA", tipoProducto.FRESCO, fechaEnvasado, fechaCaducidad);
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       dia=9; mes=8; anio=2017;
       fechaEnvasado.set(Calendar.DAY_OF_MONTH,dia);
       fechaEnvasado.set(Calendar.MONTH,mes-1);
       fechaEnvasado.set(Calendar.YEAR,anio);
       dia=29; mes=8; anio=2017;
       fechaCaducidad.set(Calendar.DAY_OF_MONTH,dia);
       fechaCaducidad.set(Calendar.MONTH,mes-1);
       fechaCaducidad.set(Calendar.YEAR,anio);
       ProductoFresco prodFres2 = new ProductoFresco("PROD. FRESCO 2", 12, "CHILE", tipoProducto.FRESCO, fechaEnvasado, fechaCaducidad);
       lista.addLista("PROD. FRESCO 2", 12, "CHILE", tipoProducto.FRESCO, fechaEnvasado, fechaCaducidad);
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       dia=10; mes=9; anio=2017;
       fechaEnvasado.set(Calendar.DAY_OF_MONTH,dia);
       fechaEnvasado.set(Calendar.MONTH,mes-1);
       fechaEnvasado.set(Calendar.YEAR,anio);
       dia=22; mes=10; anio=2017;
       fechaCaducidad.set(Calendar.DAY_OF_MONTH,dia);
       fechaCaducidad.set(Calendar.MONTH,mes-1);
       fechaCaducidad.set(Calendar.YEAR,anio);
       ProductoRefrigerado prodRefr1 = new ProductoRefrigerado("PROD. REFRIGERADO 1", 21, "URUGUAY", tipoProducto.REFRIGERADO, fechaEnvasado, fechaCaducidad, 1.5, "ORG.SUPERVISION 1");
       lista.addLista("PROD. REFRIGERADO 1", 21, "URUGUAY", tipoProducto.REFRIGERADO, fechaEnvasado, fechaCaducidad);
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       dia=11; mes=9; anio=2017;
       fechaEnvasado.set(Calendar.DAY_OF_MONTH,dia);
       fechaEnvasado.set(Calendar.MONTH,mes-1);
       fechaEnvasado.set(Calendar.YEAR,anio);
       dia=31; mes=10; anio=2017;
       fechaCaducidad.set(Calendar.DAY_OF_MONTH,dia);
       fechaCaducidad.set(Calendar.MONTH,mes-1);
       fechaCaducidad.set(Calendar.YEAR,anio);
       ProductoRefrigerado prodRefr2 = new ProductoRefrigerado("PROD. REFRIGERADO 2", 22, "BOLIVIA", tipoProducto.REFRIGERADO, fechaEnvasado, fechaCaducidad, 1.6, "ORG.SUPERVISION 2");
       lista.addLista("PROD. REFRIGERADO 2", 22, "BOLIVIA", tipoProducto.REFRIGERADO, fechaEnvasado, fechaCaducidad);
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       dia=5; mes=9; anio=2017;
       fechaEnvasado.set(Calendar.DAY_OF_MONTH,dia);
       fechaEnvasado.set(Calendar.MONTH,mes-1);
       fechaEnvasado.set(Calendar.YEAR,anio);
       dia=25; mes=10; anio=2017;
       fechaCaducidad.set(Calendar.DAY_OF_MONTH,dia);
       fechaCaducidad.set(Calendar.MONTH,mes-1);
       fechaCaducidad.set(Calendar.YEAR,anio);
       ProductoRefrigerado prodRefr3 = new ProductoRefrigerado("PROD. REFRIGERADO 3", 23, "PARAGUAY", tipoProducto.REFRIGERADO, fechaEnvasado, fechaCaducidad, 1.7, "ORG.SUPERVISION 3");
       lista.addLista("PROD. REFRIGERADO 3", 23, "PARAGUAY", tipoProducto.REFRIGERADO, fechaEnvasado, fechaCaducidad);
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       dia=7; mes=8; anio=2017;
       fechaEnvasado.set(Calendar.DAY_OF_MONTH,dia);
       fechaEnvasado.set(Calendar.MONTH,mes-1);
       fechaEnvasado.set(Calendar.YEAR,anio);
       dia=27; mes=12; anio=2017;
       fechaCaducidad.set(Calendar.DAY_OF_MONTH,dia);
       fechaCaducidad.set(Calendar.MONTH,mes-1);
       fechaCaducidad.set(Calendar.YEAR,anio);
       ProductoCongeladoPorAgua prodCongAgua1 = new ProductoCongeladoPorAgua("PROD. CONG x AGUA 1", 31, "PERU", tipoProducto.CONGELADO, fechaEnvasado, fechaCaducidad, -10.5, tipoCongelado.AGUA, 20);
       lista.addLista("PROD. CONG x AGUA 1", 31, "PERU", tipoProducto.CONGELADO, fechaEnvasado, fechaCaducidad);
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       dia=9; mes=8; anio=2017;
       fechaEnvasado.set(Calendar.DAY_OF_MONTH,dia);
       fechaEnvasado.set(Calendar.MONTH,mes-1);
       fechaEnvasado.set(Calendar.YEAR,anio);
       dia=29; mes=1; anio=2018;
       fechaCaducidad.set(Calendar.DAY_OF_MONTH,dia);
       fechaCaducidad.set(Calendar.MONTH,mes-1);
       fechaCaducidad.set(Calendar.YEAR,anio);
       ProductoCongeladoPorAgua prodCongAgua2 = new ProductoCongeladoPorAgua("PROD. CONG x AGUA 2", 32, "ECUADOR", tipoProducto.CONGELADO, fechaEnvasado, fechaCaducidad, -10.6, tipoCongelado.AGUA, 21);
       lista.addLista("PROD. CONG x AGUA 2", 32, "ECUADOR", tipoProducto.CONGELADO, fechaEnvasado, fechaCaducidad);
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       dia=3; mes=8; anio=2017;
       fechaEnvasado.set(Calendar.DAY_OF_MONTH,dia);
       fechaEnvasado.set(Calendar.MONTH,mes-1);
       fechaEnvasado.set(Calendar.YEAR,anio);
       dia=31; mes=12; anio=2017;
       fechaCaducidad.set(Calendar.DAY_OF_MONTH,dia);
       fechaCaducidad.set(Calendar.MONTH,mes-1);
       fechaCaducidad.set(Calendar.YEAR,anio);
       ProductoCongeladoPorAire prodCongAire1 = new ProductoCongeladoPorAire("PROD. CONG x AIRE 1", 41, "BRASIL", tipoProducto.CONGELADO, fechaEnvasado, fechaCaducidad, -10.7, tipoCongelado.AIRE, 1, 2, 3, 4);
       lista.addLista("PROD. CONG x AIRE 1", 41, "BRASIL", tipoProducto.CONGELADO, fechaEnvasado, fechaCaducidad);
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       dia=4; mes=8; anio=2017;
       fechaEnvasado.set(Calendar.DAY_OF_MONTH,dia);
       fechaEnvasado.set(Calendar.MONTH,mes-1);
       fechaEnvasado.set(Calendar.YEAR,anio);
       dia=24; mes=12; anio=2017;
       fechaCaducidad.set(Calendar.DAY_OF_MONTH,dia);
       fechaCaducidad.set(Calendar.MONTH,mes-1);
       fechaCaducidad.set(Calendar.YEAR,anio);
       ProductoCongeladoPorAire prodCongAire2 = new ProductoCongeladoPorAire("PROD. CONG x AIRE 2", 42, "COLOMBIA", tipoProducto.CONGELADO, fechaEnvasado, fechaCaducidad, -10.8, tipoCongelado.AIRE, 5, 6, 7, 8);               
       lista.addLista("PROD. CONG x AIRE 2", 42, "COLOMBIA", tipoProducto.CONGELADO, fechaEnvasado, fechaCaducidad);
       fechaEnvasado=Calendar.getInstance();
       fechaCaducidad=Calendar.getInstance();
       dia=5; mes=8; anio=2017;
       fechaEnvasado.set(Calendar.DAY_OF_MONTH,dia);
       fechaEnvasado.set(Calendar.MONTH,mes-1);
       fechaEnvasado.set(Calendar.YEAR,anio);
       dia=25; mes=12; anio=2017;
       fechaCaducidad.set(Calendar.DAY_OF_MONTH,dia);
       fechaCaducidad.set(Calendar.MONTH,mes-1);
       fechaCaducidad.set(Calendar.YEAR,anio);
       ProductoCongeladoPorNitrogeno prodCongNitrogeno1 = new ProductoCongeladoPorNitrogeno("PROD. CONG x NITROGENO 1", 51, "VENEZUELA", tipoProducto.CONGELADO, fechaEnvasado, fechaCaducidad, -10.9, tipoCongelado.NITROGENO, 10, "METODO NITROGENO");
       lista.addLista("PROD. CONG x NITROGENO 1", 51, "VENEZUELA", tipoProducto.CONGELADO, fechaEnvasado, fechaCaducidad);
       Iterator <Producto> it=lista.iterator();
        while(it.hasNext()){
            Producto itemLista;
            itemLista=(Producto)it.next(); // objeto de la lista que estamos viendo
            dia = itemLista.getFechaEnvasado().get(Calendar.DAY_OF_MONTH);
            mes = itemLista.getFechaEnvasado().get(Calendar.MONTH)+1;
            anio = itemLista.getFechaEnvasado().get(Calendar.YEAR);
            String strFechaEnvasado = dia+"/"+mes+"/"+anio;
            dia = itemLista.getFechaCaducidad().get(Calendar.DAY_OF_MONTH);
            mes = itemLista.getFechaCaducidad().get(Calendar.MONTH)+1;
            anio = itemLista.getFechaCaducidad().get(Calendar.YEAR);
            String strFechaCaducidad = dia+"/"+mes+"/"+anio;
            System.out.println(itemLista.getNombreProducto()+"  lote :"+itemLista.getNroLote() + "  origen :"+itemLista.getPaisOrigen()+"  tipo :"+itemLista.getTipoDeProducto()+ "  envasado :"+strFechaEnvasado+"  Vence :"+strFechaCaducidad);
        }
    }
}

Clase super Producto
Código: [Seleccionar]
import java.util.*;

/**
 * Write a description of class Producto here.
 *
 * @author Luis
 * @version CU00687B
 */
public class Producto
{
    // instance variables - replace the example below with your own
    public String nombreProducto;
    public int nroLote;
    public String paisOrigen;
    TipoDeProducto tipoProducto;
    Calendar fechaEnvasado;
    Calendar fechaCaducidad;
   
    /**
     * Constructor for objects of class Productos
     */
    public Producto()
    {
        // initialise instance variables
        nombreProducto = "";
        nroLote = 0;
        paisOrigen = "";
        fechaEnvasado.getInstance();
        fechaCaducidad.getInstance();
    }
   
    public Producto(String nombreProducto, int nroLote, String paisOrigen, TipoDeProducto tipoProducto, Calendar fechaEnvasado, Calendar fechaCaducidad){
        this.nombreProducto=nombreProducto;
        this.nroLote=nroLote;
        this.paisOrigen=paisOrigen;
        this.tipoProducto=tipoProducto;
        this.fechaEnvasado=fechaEnvasado;
        this.fechaCaducidad=fechaCaducidad;
    }
    // metodos setters
     /**
     * @param nombreProducto Descripcion del producto
     */
    public void setNombreProducto(String nombreProducto){
       this.nombreProducto=nombreProducto;
    }
     /**
     * @param nroLote Numero de lote del producto
     */
    public void setNroLote(int nroLote){
        this.nroLote=nroLote;
    }
     /**
     * @param tipoProducto enun FRESCO, REFRIGERADO, CONGELADO
     */
    public void setTipoProducto(TipoDeProducto tipoProducto) {
       this.tipoProducto=tipoProducto;
    }
     /**
     * @param paisOrigen Nombre del pais de origen del producto
     */
    public void setPaisOrigen(String xPais){
        this.paisOrigen = paisOrigen;
    }
     public void setFechaEnvasado(Calendar fechaEnvasado){
        this.fechaEnvasado = fechaEnvasado;
    }
    public void setFechaCaducidad(Calendar fechaCaducidad){
        this.fechaCaducidad = fechaCaducidad;
    }
    // metodos getters
    /**
    * @return Nombre del producto (String)
    */
    public String getNombreProducto(){
        return nombreProducto;
    }
    /**
    * @return Número de lote (int)
    */
    public int getNroLote(){
        return nroLote;
    }
    /**
    * @return Nombre del producto (String)
    */
    public String getPaisOrigen(){
        return paisOrigen;
    }
    /**
    * @return El tipo de producto (enum)
    */
    public TipoDeProducto getTipoDeProducto(){
        return tipoProducto;               
    }
    /**
     * @return Fecha de envasado del producto (Calendar)
     */
    public Calendar getFechaEnvasado(){
        return fechaEnvasado;
    }

    /**
     * @return Fecha de vencimiento del producto (Calendar)
     */
    public Calendar getFechaCaducidad(){
        return fechaCaducidad;
    }
}
Clases ProductoFresco y ProductoConservadoEnFrio que heredan de Producto
Código: [Seleccionar]
import java.util.*;

/**
 * Write a description of class ProductoFresco here.
 *
 * @author Luis
 * @version CU00687B
 */
public class ProductoFresco extends Producto {
    public ProductoFresco() {
    }
    public ProductoFresco(String nomProd, int lote, String xPais, TipoDeProducto tipoDeProducto, Calendar fechaEnvasado, Calendar fechaCaducidad) {
        super(nomProd, lote, xPais, tipoDeProducto, fechaEnvasado, fechaCaducidad);
    }
}

Código: [Seleccionar]
import java.util.*;
/**
 * Write a description of class ProductoConservadoEnFrio here.
 *
 * @author Luis
 * @version CU00687B
 */
public class ProductoConservadoEnFrio extends Producto
{
    private double temperaturaMantenimiento;
    public ProductoConservadoEnFrio() {
    }
    public ProductoConservadoEnFrio(String nomProd, int lote, String xPais, TipoDeProducto tipoProducto, Calendar fechaEnvasado, Calendar fechaCaducidad, double temperaturaMantenimiento) {
        // initialise instance variables
       super(nomProd, lote, xPais, tipoProducto, fechaEnvasado, fechaCaducidad);
       this.temperaturaMantenimiento=temperaturaMantenimiento;
    }
    /**
     * @param codigoOrganismoSupervision El Organismo que controla el producto
     */
    /**
     * @param temperaturaMantenimiento La temperatura para mantener el producto refrigerado
     */
    public void setTemperaturaMantenimiento(double temperaturaMantenimiento){
    this.temperaturaMantenimiento = temperaturaMantenimiento;
    }
     /**
     * @return La temperatura para mantener el producto refrigerado (double)
     */
    public double getTemperaturaMantenimiento() {
        return temperaturaMantenimiento;
    }
}

Clases ProductoRefrigerado y ProductoCongelado que heredan de ProductoConservadoEnFrio
Código: [Seleccionar]
import java.util.*;
/**
 * Write a description of class ProductoRefrigerado here.
 *
 * @author Luis
 * @version CU00687B
 */
public class ProductoRefrigerado extends ProductoConservadoEnFrio
{
    public String organismoSupervision;
    public ProductoRefrigerado() {
    }
    public ProductoRefrigerado(String nomProd, int lote, String xPais, TipoDeProducto tipoProducto, Calendar fechaEnvasado, Calendar fechaCaducidad, double temperaturaMantenimiento, String organismoSupervision) {
        // initialise instance variables
       super(nomProd, lote, xPais, tipoProducto, fechaEnvasado, fechaCaducidad, temperaturaMantenimiento);
       this.organismoSupervision=organismoSupervision;
    }
    /**
     * @param codigoOrganismoSupervision El Organismo que controla el producto
     */
    public void setOrganismoSupervision(String codigoOrganismoSupervision){
    this.organismoSupervision = organismoSupervision;
    }
     /**
     * @return El Organismo que controla el producto (String)   
     */
    public String getOrganismoSupervision() {
        return organismoSupervision;
    }
}
Código: [Seleccionar]
import java.util.*;
/**
 * Write a description of class ProductoCongelado here.
 *
 * @author Luis
 * @version CU00687B
 */
public class ProductoCongelado extends ProductoConservadoEnFrio {
    TipoDeCongelado tipoCongelado;
    public ProductoCongelado() {
    }
    public ProductoCongelado(String nomProd, int lote, String xPais, TipoDeProducto tipoProducto, Calendar fechaEnvasado, Calendar fechaCaducidad, double temperaturaMantenimiento, TipoDeCongelado tipoCongelado) {
       super(nomProd, lote, xPais, tipoProducto, fechaEnvasado, fechaCaducidad, temperaturaMantenimiento);
       this.tipoCongelado=tipoCongelado;
    }
    /**
     * @param tipoCongelado enun AIRE, AGUA, NITROGENO
     */
    public void setTipoCongelado(TipoDeCongelado tipoCongelado) {
        this.tipoCongelado = tipoCongelado;
    }
       /**
    * @return El tipo de congelado (enum)
    */
    public TipoDeCongelado getTipoDeCongelado(){
        return tipoCongelado;               
    }
}

Clases ProductoCongeladoPorAgua, ProductoCongeladoPorAire y ProductoCongeladoPorNitrogeno que heredan de ProductoCongelado
Código: [Seleccionar]
import java.util.*;
/**
 * Write a description of class ProductoCongeladoPorAgua here.
 *
 * @author Luis
 * @version CU00687B
 */
public class ProductoCongeladoPorAgua extends ProductoCongelado {
    int salinidadAgua=0;
    public ProductoCongeladoPorAgua() {
    }
    public ProductoCongeladoPorAgua(String nomProd, int lote, String xPais, TipoDeProducto tipoProducto, Calendar fechaEnvasado, Calendar fechaCaducidad, double temperaturaMantenimiento, TipoDeCongelado tipoCongelado, int salinidadAgua ) {
       super(nomProd, lote, xPais, tipoProducto, fechaEnvasado, fechaCaducidad, temperaturaMantenimiento, tipoCongelado);
    }
    /**
    * @param salinidadAgua Salinidad del agua 
    */
    public void setSalinidadAgua(int salinidadAgua){
        this.salinidadAgua=salinidadAgua;               
    }
    /**
    * @return La salinidad del agua  (int)
    */
    public int getSalinidadAgua(){
        return salinidadAgua;               
    }
}
Código: [Seleccionar]
import java.util.*;
/**
 * Write a description of class ProductoCongeladoPorAire here.
 *
 * @author Luis
 * @version CU00687B
 */
public class ProductoCongeladoPorAire extends ProductoCongelado {
    float valorN=0;
    float valorO=0;
    float valorCO2=0;
    float valorH2O=0;
    public ProductoCongeladoPorAire() {
    }
    public ProductoCongeladoPorAire(String nomProd, int lote, String xPais, TipoDeProducto tipoDeProducto, Calendar fechaEnvasado, Calendar fechaCaducidad, double temperaturaMantenimiento, TipoDeCongelado tipoCongelado, float valorN, float valorO, float valorCO2, float valorH2O ) {
       super(nomProd, lote, xPais, tipoDeProducto, fechaEnvasado, fechaCaducidad, temperaturaMantenimiento, tipoCongelado);
    }
    /**
    * @param valorN El porcentaje de Nitrogeno 
    */
    public void setPorcentajeN(float valorN){
        this.valorN=valorN;               
    }
    /**
    * @param valorO El porcentaje de Oxigeno
    */
    public void setPorcentajeO(float valorO){
        this.valorO=valorO;               
    }
    /**
    * @param valorCO2 El porcentaje de CO2
    */
    public void setPorcentajeCO2(float valorCO2){
        this.valorCO2=valorCO2;               
    }
    /**
    * @param valorH2O El porcentaje de vapor de H2O
    */
    public void setPorcentajeH2O(float valorH2O){
        this.valorH2O=valorH2O;               
    }
    /**
    * @return El porcentaje de Nitrogeno  (float)
    */
    public float getPorcentajeN(){
        return valorN;               
    }
    /**
    * @return El porcentaje de Oxigeno  (float)
    */
    public float getPorcentajeO(){
        return valorO;               
    }
    /**
    * @return El porcentaje de CO2  (float)
    */
    public float getPorcentajeCO2(){
        return valorCO2;               
    }
    /**
    * @return El porcentaje de Vapor de H2O  (float)
    */
    public float getPorcentajeH2O(){
        return valorH2O;               
    }
}

58
Hola a todos !!! Paso a dejar el código para el ejercicio propuesto CU00686B del tutorial de programación Java como si estuviera en primero. Desde ya muchas gracias.  Saludos
Luis

EJERCICIO

Se plantea desarrollar un programa Java que permita la gestión de una empresa agroalimentaria que trabaja con tres tipos de productos: productos frescos, productos refrigerados y productos congelados. Todos los productos llevan esta información común: fecha de caducidad y número de lote. A su vez, cada tipo de producto lleva alguna información específica. Los productos frescos deben llevar la fecha de envasado y el país de origen. Los productos refrigerados deben llevar el código del organismo de supervisión alimentaria. Los productos congelados deben llevar la temperatura de congelación recomendada. Crear el código de las clases Java implementando una relación de herencia desde la superclase Producto hasta las subclases ProductoFresco, ProductoRefrigerado y ProductoCongelado. Cada clase debe disponer de constructor y permitir establecer (set) y recuperar (get) el valor de sus atributos y tener un método que permita mostrar la información del objeto. Crear una clase testHerencia2 con el método main donde se cree un objeto de cada tipo y se muestren los datos de cada uno de los objetos creados.

Clase principal - metodo main

Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
public class TestHerencia2 {
    public static void main (String [ ] args) {
        EntradaDeTeclado entrada = new EntradaDeTeclado();
        System.out.println("Por favor introduzca el nombre del producto:");
        entrada.pedirEntrada();
        String nomProd = entrada.getEntrada();       
        System.out.println("Ingrese el nro de lote :");
        entrada.pedirEntrada();
        int lote = Integer.parseInt(entrada.getEntrada());
        System.out.println("Ingrese el dia de caducidad :");
        entrada.pedirEntrada();
        int diaVenc = Integer.parseInt(entrada.getEntrada());
        System.out.println("Ingrese el mes de caducidad :");
        entrada.pedirEntrada();
        int mesVenc = Integer.parseInt(entrada.getEntrada());
        System.out.println("Ingrese el año de caducidad :");
        entrada.pedirEntrada();
        int anioVenc = Integer.parseInt(entrada.getEntrada());
        System.out.println("Por favor introduzca el tipo de producto (1=Fresco 2=Refrigerado 3=Congelado):");
        int opcion=0;
        entrada.pedirEntrada();
        opcion = Integer.parseInt(entrada.getEntrada());
        switch (opcion) {
            case 1: // producto fresco
            System.out.println("Por favor introduzca el pais de origen:");
            entrada.pedirEntrada();
            String paisOrigen = entrada.getEntrada();
            System.out.println("Ingrese el dia de envasado :");
            entrada.pedirEntrada();
            int diaEnv = Integer.parseInt(entrada.getEntrada());
            System.out.println("Ingrese el mes de envasado :");
            entrada.pedirEntrada();
            int mesEnv = Integer.parseInt(entrada.getEntrada());
            System.out.println("Ingrese el año de envasado :");
            entrada.pedirEntrada();
            int anioEnv = Integer.parseInt(entrada.getEntrada());
            ProductosFrescos prodFres = new ProductosFrescos(nomProd, lote, diaVenc, mesVenc, anioVenc, paisOrigen, diaEnv, mesEnv, anioEnv);           
            System.out.println("El producto fresco es :"+prodFres.getNombreProducto());
            System.out.println("El nro de lote es :"+prodFres.getNroLote());
            System.out.println("La fecha de caducidad es :"+prodFres.getFechaCaducidad());
            System.out.println("El pais de origen es :"+prodFres.getPaisOrigen());
            System.out.println("la fecha de envasado es :"+prodFres.getFechaEnvasado());
            break;
            case 2: // producto refrigerado
            System.out.println("Por favor introduzca el organismo de control");
            entrada.pedirEntrada();
            String xODC = entrada.getEntrada();
            ProductosRefrigerados prodRefr = new ProductosRefrigerados(nomProd, lote, diaVenc, mesVenc, anioVenc, xODC);           
            System.out.println("El producto refrigerado es :"+prodRefr.getNombreProducto());
            System.out.println("El nro de lote es :"+prodRefr.getNroLote());
            System.out.println("La fecha de caducidad es :"+prodRefr.getFechaCaducidad());
            System.out.println("El organismo de control es :"+prodRefr.getOrganismoControl());
            break;
            case 3: // producto congelado
            System.out.println("Ingrese temperatura de congelado :");
            entrada.pedirEntrada();
            double xTempCongelado = Double.parseDouble(entrada.getEntrada());
            ProductosCongelados prodCong = new ProductosCongelados(nomProd, lote, diaVenc, mesVenc, anioVenc, xTempCongelado);           
            System.out.println("El producto congelado es :"+prodCong.getNombreProducto());
            System.out.println("El nro de lote es :"+prodCong.getNroLote());
            System.out.println("La fecha de caducidad es :"+prodCong.getFechaCaducidad());
            System.out.println("El temperatura de congelado es :"+prodCong.getTemperaturaCongelado());
            break;
            default:break;
        }
    }
} //Cierre de la clase


Clase Productos donde se heredan los distintos tipos (frescos, refrigerados y congelados)

Código: [Seleccionar]
import java.util.Calendar;
import java.util.GregorianCalendar;

/**
 * Write a description of class Productos here.
 *
 * @author Luis
 * @version CU00686B
 */
public class Productos
{
    // instance variables - replace the example below with your own
    private String nombreProducto;
    private int nroLote;
    Calendar fechaCaducidad = new GregorianCalendar();
    /**
     * Constructor for objects of class Productos
     */
    public Productos()
    {
        // initialise instance variables
        nombreProducto = "";
        nroLote = 0;
        fechaCaducidad.getInstance();
    }
   
    public Productos(String nomProd, int lote, int dia, int mes, int anio){
        setNombreProducto(nomProd);
        setNroLote(lote);
        setFechaCaducidad(dia,mes,anio);
    }
    // metodos setters
     /**
     * @param nombreProducto Descripcion del producto
     */
    public void setNombreProducto(String xNombre){
        nombreProducto = xNombre;
    }
     /**
     * @param nroLote Numero de lote del producto
     */
    public void setNroLote(int xLote){
        nroLote = xLote;
    }
    public void setFechaCaducidad(int d, int m, int a){
        fechaCaducidad.set(Calendar.DAY_OF_MONTH, d);
        fechaCaducidad.set(Calendar.MONTH, m-1);
        fechaCaducidad.set(Calendar.YEAR, a);
    }
    // metodos getters
        /**
    * @return Nombre del producto (String)
    */
    public String getNombreProducto(){
        return nombreProducto;
    }
    /**
    * @return Número de lote (int)
    */
    public int getNroLote(){
        return nroLote;
    }
    /**
     * @return Fecha de vencimiento del producto
     */
    public String getFechaCaducidad(){
        int dia = fechaCaducidad.get(Calendar.DAY_OF_MONTH);
        int mes = fechaCaducidad.get(Calendar.MONTH)+1;
        int anio = fechaCaducidad.get(Calendar.YEAR);
        return dia+"/"+mes+"/"+anio;
    }
}


Clase para productos frescos

Código: [Seleccionar]
import java.util.Calendar;
import java.util.GregorianCalendar;
/**
 * Write a description of class ProductosFrescos here.
 *
 * @author Luis
 * @version CU00686B
 */
public class ProductosFrescos extends Productos {
    Calendar fechaEnvasado = new GregorianCalendar();
    String paisOrigen = "";
    public ProductosFrescos(String nomProd, int lote, int diaVenc, int mesVenc, int anioVenc, String paisOrigen, int diaEnv, int mesEnv, int anioEnv)    {
        super(nomProd, lote, diaVenc, mesVenc, anioVenc);
        fechaEnvasado.getInstance();
        this.paisOrigen = paisOrigen;
        setFechaEnvasado(diaEnv,mesEnv,anioEnv);
    }
    /**
     * @param paisDeOrigen Nombre de pais donde se produce
     */
    public void setPaisOrigen(String xPais){
        paisOrigen = xPais;
    }
     public void setFechaEnvasado(int d, int m, int a){
        fechaEnvasado.set(Calendar.DAY_OF_MONTH, d);
        fechaEnvasado.set(Calendar.MONTH, m-1);
        fechaEnvasado.set(Calendar.YEAR, a);
    }
    /**
     * @return Nombre del pais de origen (String)
     */
    public String getPaisOrigen(){
        return paisOrigen;
    }
    public String getFechaEnvasado(){
       int dia = fechaEnvasado.get(Calendar.DAY_OF_MONTH);
       int mes = fechaEnvasado.get(Calendar.MONTH)+1;
       int anio = fechaEnvasado.get(Calendar.YEAR);
       return dia+"/"+mes+"/"+anio;
    }
}


Clase para productos refrigerados

Código: [Seleccionar]
/**
 * Write a description of class ProductosRefrigerados here.
 *
 * @author Luis
 * @version CU00686B
 */
public class ProductosRefrigerados extends Productos
{
    private String organismoControl;
    public ProductosRefrigerados(String nomPro, int lote, int diaVenc, int mesVenc, int anioVenc, String organismoControl) {
        // initialise instance variables
        super(nomPro, lote, diaVenc, mesVenc, anioVenc);
        this.organismoControl=organismoControl;
    }
    /**
     * @param organismoControl El Organismo que controla el producto
     */
    public void setOrganismoControl(String organismoControl){
    this.organismoControl = organismoControl;
    }
     /**
     * @return El Organismo que controla el producto (String)   
     */
    public String getOrganismoControl() {
        return organismoControl;
    }
}


Clase para productos congelados

Código: [Seleccionar]
import java.util.Calendar;
import java.util.GregorianCalendar;
/**
 * Write a description of class ProductosCongelados here.
 *
 * @author Luis
 * @version CU00686B
 */
public class ProductosCongelados extends Productos {
    private double temperaturaCongelado;

    public ProductosCongelados(String nomProd, int lote, int diaVenc, int mesVenc, int anioVenc, double temperaturaCongelado)
    {
        super(nomProd, lote, diaVenc, mesVenc, anioVenc);
        this.temperaturaCongelado=temperaturaCongelado;
    }
    /**
     * @param temperaturaCongelado Temperatura del producto congelado
     */
    public void setTemperaturaCongelado(double temperaturaCongelado){
        this.temperaturaCongelado = temperaturaCongelado;
    }
     /**
     * @return la temperatura de congelado(double)
     */
    public double getTemperaturaCongelado() {
        return temperaturaCongelado;
    }
}


Clase para ingreso de datos por consola ya usada anteriormente

Código: [Seleccionar]
import java.util.Scanner; //Importación del código de la clase Scanner desde la biblioteca Java
// Definimos una clase EntradaDeTeclado aprenderaprogramar.com
public class EntradaDeTeclado {
    private String entradaTeclado; //Variable de instancia (campo) de la clase
    public EntradaDeTeclado ()  { //Constructor
        entradaTeclado="";
     //   pedirEntrada(); //Esto es una llamada a un método interno. Al crear un objeto ejecutamos el método
    } //Cierre del constructor
    public void pedirEntrada ()  {  //Método de la clase         
        Scanner entradaEscaner = new Scanner (System.in);
        entradaTeclado = entradaEscaner.nextLine ();
        } //Cierre del método pedirEntrada
    public String getEntrada () { return entradaTeclado; } //Cierre del método getEntrada
    public String getPrimeraPalabra ()  {
               for (int i=0; i < entradaTeclado.length() - 1; i++) {
            if (entradaTeclado.substring (i, i+1).equals(" ") ) {     //IMPORTANTÍSIMO: COMPARAMOS CON EQUALS
                return entradaTeclado.substring(0, i+1);         }
        }
        return entradaTeclado;  //Caso de que no se detecte ningún espacio devolvemos lo que haya
    } //Cierre del método getPrimeraPalabra
    public int getLongitud ()  {  //Método de la clase
        return entradaTeclado.length();
    } //Cierre del método getLongitud
} //Cierre de la clase

59
Hola a todos !! Paso a responder las preguntas del ejercicio CU00683B del curso de fundamentos de Java desde cero. Desde ya muchas gracias. Saludos, Luis


EJERCICIO

Intenta compilar el siguiente código:

Código: [Seleccionar]
public class Test2 {
    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

¿Qué mensaje de error se obtiene? ¿Por qué se obtiene este mensaje de error? ¿Cómo podemos solucionarlo para que se ejecute lo que pretendemos?

Respuesta: (los errores se van encadenando y están indicados en rojo)
System.out.println ("Atributo 1 vale" + this.getAtrib1());
"non-static variable this cannot be referenced from static context"

quitamos el "this."
porque los métodos estáticos tiene esta limitación:"b) No pueden invocar a un método de instancia de la misma clase (lógico pues los métodos de instancia van asociados a objetos)."

------------------------------------------------------------------
System.out.println ("Atributo 1 vale" + getAtrib1());
"non-static method getAtrib1() cannot be referenced from static context"

debemos declarar static el método:
public static int getAtrib1() {return atributo1;}

porque al no existir una instancia (objeto) los métodos tienen que ser de clase o estáticos

-------------------------------------------------------------------
public static int getAtrib1() {return atributo1;}
"non-static variable atributo1 cannot be referenced from a static context "

debemos declarar static a atributo1 :
static int atributo1;

porque los métodos estáticos tiene esta limitación:"a) No pueden acceder a campos de instancia (lógico, pues los campos van asociados a objetos)."

El código corregido queda:

Código: [Seleccionar]
public class Test {
    static int atributo1;
    Test (int atrib) {atributo1 = 0;}
    public static void main (String[ ] Args) {
        System.out.println ("Mensaje 1");
        System.out.println ("Atributo 1 vale" + getAtrib1());
    } //Cierre del main
    public static int getAtrib1() {return atributo1;}
} //Cierre de la clase

60
Hola a todos !! Paso a dejar el código del ejercicio CU00682B del tutorial de fundamentos de programación con Java. Desde ya muchas gracias por la revisión del mismo. Saludos, Luis


Clase principal, metodo main

Código: [Seleccionar]
/**
 * Esta clase prueba una clase de tipo Enum realizando distintas operaciones con ella
 * @author Luis
 * @version 1.0
 */
public class TestEnumPiedra {
    public static void main (String[ ] Args) {
       System.out.println ("Un palet admite 2.27 m3 de volumen. A continuación el peso de los palets de las distintas piedras:");
        for (TipoDePiedra tmp: TipoDePiedra.values() ) {
            System.out.println (tmp.toString() + ": el palet pesa " + (2.27f*(float)tmp.getPesoEspecifico() ) + " kg");
        }
} //Cierre del main
} //Cierre de la clase


Clase enum

Código: [Seleccionar]
/**
 * Enumeration class TipoDePiedra - write a description of the enum class here
 *
 * @author Luis
 * @version 1.0
 */
public enum TipoDePiedra
{
    CALIZA(1200), MARMOL(1423.55f), PIZARRA(1325), CUARZITA(1466);
        //Campos 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 de los campos
     */
    TipoDePiedra (float pesoEspecifico) {
        this.pesoEspecifico = pesoEspecifico;
    } //Cierre del constructor
    //Métodos de la clase tipo Enum
    public float getPesoEspecifico() { return pesoEspecifico; }
}

Páginas: 1 2 [3] 4 5

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".