Mostrar Mensajes

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


Mensajes - el_calderas

Páginas: [1] 2 3
1
Muchas gracias por la explicación. La verdad es que deberia haber consultado la API de java para confirmar el funcionamiento de estos metodos...y no lo pense.

No me volvera a pasar.
Un saludo.


2
Hola, tengo una duda con la solución de uno de los ejercicios resueltos de la unidad CU00907C.

En el ejercicio piden esto:

"Crear el código de un programa en el que se declaran tres variables tipo int a, b y c, cuyo valor se muestra en pantalla y debe estar comprendido entre cero y 100, utilizando el método nextInt de la clase Random."

Este es el codigo de la solución:
Código: [Seleccionar]
/* Ejemplo uso clase Random() – aprenderaprogramar.com */
import java.util.Random;
public class Programa {
public static void main(String arg[]) {
int a, b, c;
Random rnd = new Random();
a = rnd.nextInt(101);
b = rnd.nextInt(101);
c = rnd.nextInt(101);
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}


Mi duda es, en la unidad 906C se dice que si se necesitan números aleatorios dentro de un rango hay que aplicar la formula:

"(int) (rnd.nextDouble() * cantidad_números_rango + término_inicial_rango)"

El casting con el int, en este caso no seria necesario...

Segun esto, yo el codigo que habria escrito es:

Código: [Seleccionar]
import java.util.Random;
public class Programa {
public static void main(String arg[]) {
int a, b, c;
Random rnd = new Random();
a = rnd.nextInt()*101;
b = rnd.nextInt()*101;
c = rnd.nextInt()*101;
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}

Pero con este codigo, los numeros generados son positivos o negativos y fuera del rango [0-100]...¿Por qué?

¿Porque se utiliza en la solución oficial el total de números del rango como parametro del nexInt()?

Muchas gracias por las respuestas.

3
Hola,

esta es mi solución para este ejercicio.


Clase Persona:

Código: [Seleccionar]
public class Persona
{
    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 "-Nombre: ".concat(nombre).concat("\n").concat("-Apellidos: ").concat(apellidos).concat("\n").concat("-Edad: ").concat(datoEdad.toString());
    }
}

Clase Legislador:
Código: [Seleccionar]
public abstract class Legislador extends Persona
{
    protected String provinciaQueRepresenta;
    //protected String camaraEnQueTrabaja;
   
    public Legislador(String nombre, String apellidos, int edad, String provincia){
        super(nombre, apellidos, edad);
        provinciaQueRepresenta=provincia;
    }
   
    /**
    public void setCamaraEnQueTrabaja(String camara){
        camaraEnQueTrabaja=camara;
    }
    */
   
    public abstract String getCamaraEnQueTrabaja();
   
    public String toString(){
        return super.toString().concat("\n").concat("-Provincia que representa: ").concat(this.provinciaQueRepresenta);
    }
}

clase Diputado:
Código: [Seleccionar]
public class Diputado extends Legislador
{
    private static final String CAMARA="Congreso";
   
    public Diputado(String nombre, String apellidos, int edad, String provincia){
        super(nombre,apellidos,edad,provincia);
    }
   
    public String getCamaraEnQueTrabaja() {
        return CAMARA;
    }
   
    public String getProvinciaQueRepresenta(){
        return super.provinciaQueRepresenta;
    }
   
    public String toString(){
        return super.toString().concat("\n").concat("-Camara en la que trabaja: ").concat(getCamaraEnQueTrabaja().concat("\n"));
    }
}

Clase senador:
Código: [Seleccionar]
public class Senador extends Legislador
{
    private static final String CAMARA="Senado";
   
    public Senador(String nombre, String apellidos, int edad, String provincia){
        super(nombre,apellidos,edad,provincia);
    }
   
    public String getCamaraEnQueTrabaja() {
        return CAMARA;
    }
   
    public String getProvinciaQueRepresenta(){
        return super.provinciaQueRepresenta;
    }
   
    public String toString(){
        return super.toString().concat("\n").concat("-Camara en la que trabaja: ").concat(getCamaraEnQueTrabaja()).concat("\n");
    }
}

Y clase main:
Código: [Seleccionar]
import java.util.ArrayList;

public class MainClass
{
    public static void main(String[] Argas){
        Diputado diputado1=new Diputado("Juan", "Martinez", 35, "Madrid");
        Diputado diputado2=new Diputado("Carlos", "Goñi", 39, "Valencia");
        Diputado diputado3=new Diputado("Alberto", "deMiguel", 44, "Barcelona");
        Diputado diputado4=new Diputado("Juan", "Corbalan", 45, "cadiz");
        Senador senador1=new Senador("Alberto", "Rodriguez", 45, "Salamanca");
        Senador senador2=new Senador("Daniel", "Diaz", 55, "Galicia");
        Senador senador3=new Senador("David", "Gomez", 39, "Burgos");
        Senador senador4=new Senador("Julio", "Prieto", 54, "Murcia");
       
        ArrayList<Legislador> listaLagisladores=new ArrayList<>();
       
        listaLagisladores.add(diputado1);
        listaLagisladores.add(diputado2);
        listaLagisladores.add(diputado3);
        listaLagisladores.add(diputado4);
        listaLagisladores.add(senador1);
        listaLagisladores.add(senador2);
        listaLagisladores.add(senador3);
        listaLagisladores.add(senador4);
       
        for(Legislador tmp:listaLagisladores){
            System.out.println(tmp.toString());
        }
    }
}

Un saludo.

4
Hola, gracias por la respuesta.
En cuanto a la constante Pi, el hecho de declararla en la clase figura era con vistas a una posible utilización en cualquier otra figura que la utilizase, como area de un cono, de una esfera, etc..

Un saludo.

5
Hola, aquí dejo mi solución a este ejercicio.

No me he liado mucho y he creado, como dice el texto, una clase padre con un atributo que heredan las clases hijas, las cuales solo difieren por el cuerpo del metodo propio.

Para sobreescibir el metodo en las clases hijas, he incluido el mismo metodo en la clase padre pero con una salida nula (0.0).


Clase Figura:

Código: [Seleccionar]
public class Figura
{
    protected static final double Pi=3.14;
    protected double dimensionPrincipal;
   
    public Figura (double d){
        dimensionPrincipal=d;
    }
   
    public double getDimensionPrincipal(){
        return dimensionPrincipal;
    }
   
    public double calcularArea(){
        return 0.0;
    }

       
}


Clase Cuadrado:

Código: [Seleccionar]
public class Cuadrado extends Figura
{
    //no tiene atributos propios
    public Cuadrado (double d){
        super(d);
    }
   
    //solo tiene metodo propio
    //la dimension principal de un cuadrado es el lado
    //el area de un cuadrado es el lado al cuadrado.
    public double calcularArea(){
        return (super.getDimensionPrincipal()*super.getDimensionPrincipal());
    }
   
    public boolean equals(Object obj){
        if(obj instanceof Cuadrado){
            Cuadrado tmp=(Cuadrado)obj;
            if(super.dimensionPrincipal==(tmp.dimensionPrincipal)){
                return true;
            }else{
                return false;
            }
        }
        return false;
    }

}


Clase Circulo:

Código: [Seleccionar]
public class Circulo extends Figura
{
    //no tiene atributos propios
   
    public Circulo(double d){
        super(d);
    }
   
    //solo tiene metodo propio
    //la dimension principàl seria el radio
    //el area de un circulo se calcula multiplicando pi por el radio al cuadrado.
   
    public double calcularArea(){
        return ((super.getDimensionPrincipal()*super.getDimensionPrincipal())*Pi);
    }
   
    public boolean equals(Object obj){
        if(obj instanceof Circulo){
            Circulo tmp=(Circulo)obj;
            if(super.dimensionPrincipal==(tmp.dimensionPrincipal)){
                return true;
            }else{
                return false;
            }
        }
        return false;
    }
}


Clase main:

Código: [Seleccionar]
public class TestEquals
{
    public static void main(String[] Argas){
        Figura cuadrado1=new Cuadrado(2);
        Figura cuadrado2=new Cuadrado(5);
        Figura cuadrado3=new Cuadrado(2.1);
        Figura cuadrado4=new Cuadrado(2.0);
        Figura circulo1=new Circulo(2.5);
        Figura circulo2=new Circulo(2.8);
        Figura circulo3=new Circulo(4);
        Figura circulo4=new Circulo(2.5);
       
       
        System.out.println("El area del cuadrado1 es: "+ cuadrado1.calcularArea());
        System.out.println("El area del cuadrado2 es: "+ cuadrado2.calcularArea());
        System.out.println("El area del cuadrado3 es: "+ cuadrado3.calcularArea());
        System.out.println("El area del cuadrado4 es: "+ cuadrado4.calcularArea());
        System.out.println("El area del circulo1 es: "+ circulo1.calcularArea());
        System.out.println("El area del circulo2 es: "+ circulo2.calcularArea());
        System.out.println("El area del circulo3 es: "+ circulo3.calcularArea());
        System.out.println("El area del circulo4 es: "+ circulo4.calcularArea());
        System.out.println("¿Son iguales el cuadrado1 y el cuadrado2?: " + cuadrado1.equals(cuadrado2));
        System.out.println("¿Son iguales el cuadrado1 y el cuadrado3?: " + cuadrado1.equals(cuadrado3));
        System.out.println("¿Son iguales el cuadrado1 y el cuadrado4?: " + cuadrado1.equals(cuadrado4));
        System.out.println("¿Son iguales el circulo1 y el circulo2?: " + circulo1.equals(circulo2));
        System.out.println("¿Son iguales el circulo1 y el circulo3?: " + circulo1.equals(circulo3));
        System.out.println("¿Son iguales el circulo1 y el circulo4?: " + circulo1.equals(circulo4));
    }
   
}

Un saludo y espero vuestros comentarios/consejos.

6
Primero, perdon por tardar tanto en responder, pero he estado separado del ordenador bastante tiempo....
Retomo las practicas ahora.
gracias por los consejos y las correcciones. En cuanto a los nombres, todavia cometo esos fallos al identificar las clases. Sigo trabajando en ello...
En cuanto a la clase refrigerado, tienes razon en que conceptualmente no es correcto, pero aun asi, lo hice de esta forma ya que en el enunciado del ejercicio decia:

" b) Crear superclases intermedias (aunque no se correspondan con la descripción dada de la empresa)
para agrupar atributos y métodos cuando sea posible. Esto corresponde a “realizar abstracciones” en el
ámbito de la programación, que pueden o no corresponderse con el mundo real. "

Pense que se referia a esto. Tendre en cuenta lo que dices a partir de ahora.
El atributo nPrdoductos, en esta caso, sobra...
Y el atributo nEnvio me parecio necesario, por lo menos, incluirlo, aunque no se use.

Lo dicho, muchas gracias por la ayuda.

7
Hola, Esta es mi solución para este ejercicio.

He utilizado todo el codigo del ejercicio anterior, sin modificarlo, añadiendo las clases que pide el ejercicio.

En el main, se puede añadir un array para guardar los distintos envios que se creen pero no lo he implementado asi ya que tampoco lo veo necesario....me he atenido a lo que pide el ejercicio.

Estas son las clases nuevas:


EnvioDeProductos:

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

public class EnvioDeProductos
{
    private static int nEnvio=0;
    private Integer nProductos;
    private List<Producto> envio;
   
    public EnvioDeProductos(){
        envio=new ArrayList<Producto>();
        nEnvio++;
        nProductos=0;
    }
   
       
    public void addProductoAlEnvio(Producto p){
        envio.add(p);
        nProductos++;
    }
   
    public Integer getCantidadproductos(){
        return nProductos;
    }
       
    public void contenidoEnvio(){
        Iterator <Producto> it=envio.iterator();
        Producto p;
        while(it.hasNext()){
            p=it.next();
            System.out.println(p);
        }
    }
           
   
}


TestHerencia4:


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

public class TestHerencia4
{
   public static void main(String[] args){
        //se crea una lista para contener todos los productos
        ArrayList<Producto> listaProductos=new ArrayList<Producto>();
               
        //se crean los productos
       
        //parametros del fresco
        //String fechaCaducidad, int numeroLote,String paisOrigen, String fechaEnvasado
        //Crear 2
        Fresco productoFresco1 = new Fresco("12/2/16", 565, "España", "1/1/16");
        listaProductos.add(productoFresco1);
        Fresco productoFresco2 = new Fresco("12/5/18", 456, "España", "1/5/15");
        listaProductos.add(productoFresco2);
        //parametros del refrigerado:
        //String fechaCaducidad, int numeroLote,String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String codigo
        //crear 3
        Refrigerado productoRefrigerado1 = new Refrigerado("12/8/18", 2300,"España", "13/5/14", 4, "B35-267");
        listaProductos.add(productoRefrigerado1);
        Refrigerado productoRefrigerado2 = new Refrigerado("12/8/17", 2385,"España", "7/3/15", 5, "Z85-29");
        listaProductos.add(productoRefrigerado2);
        Refrigerado productoRefrigerado3 = new Refrigerado("1/3/16", 123,"España", "4/1/15", -1, "T3-45");
        listaProductos.add(productoRefrigerado3);
        //parametros del congelado por aire
        //String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String composiciónAire
        //composición del aire: %nitrogeno,%oxigeno,%dioxido de carbono,%vapor de agua
        //crear 2
        Congelado congeladoAire1 = new CongeladoAire("12/8/18", 2300,"España", "13/5/14", -25.0,"Nitrogeno:78%%,Oxigeno:21%%,Dioxido de carbono:0,03%%,Vapor de agua:variable");
        listaProductos.add(congeladoAire1);
        Congelado congeladoAire2 = new CongeladoAire("12/8/16", 4524,"España", "10/11/14", -25.0,"Nitrogeno:78%%,Oxigeno:21%%,Dioxido de carbono:0,03%%,Vapor de agua:variable");
        listaProductos.add(congeladoAire2);
        //parametros congelado por agua
        //String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String salinidadAgua
        //salinidad del agua: gr/litro
        //crear 2
        Congelado congeladoAgua1 = new CongeladoAgua("1/3/15", 56,"España", "1/3/16", -20.0,"<0,5g/l");
        listaProductos.add(congeladoAgua1);
        Congelado congeladoAgua2 = new CongeladoAgua("12/2/15", 89,"España", "12/2/16", -20.0,"<0,5g/l");
        listaProductos.add(congeladoAgua2);
        //parametros congelado por nitrogeno
        //String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String metodoCongelacion,int tiempoExposicion
        //crear 1
        Congelado congeladoNitrogeno = new CongeladoNitrogeno("1/3/15", 32,"España", "1/3/16", -30.0,"Tunel de refrigeración",300);
        listaProductos.add(congeladoNitrogeno);
       
        //se crea un envio y se añaden los productos al envio
        EnvioDeProductos envio = new EnvioDeProductos();
        for(Producto p : listaProductos){
            envio.addProductoAlEnvio(p);
        }
       
       
        //Se imprime la información del envio
        System.out.println("Número de productos en el envio: " + envio.getCantidadproductos());
        System.out.println("Información de los productos contenidos en el envio: ");
        envio.contenidoEnvio();
    }
}


Y el resto de clases reutilizadas:

clase Producto:


Código: [Seleccionar]
public class Producto
{
    private String fechaCaducidad;
    private int numeroLote;
    private String paisOrigen;
    private String fechaEnvasado;
   
    public Producto(String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado){
        this.fechaCaducidad=fechaCaducidad;
        this.numeroLote=numeroLote;
        this.paisOrigen=paisOrigen;
        this.fechaEnvasado=fechaEnvasado;
    }
   
    public String getFechaCaducidad(){
        return fechaCaducidad;
    }
   
    public int getNumeroLote(){
        return numeroLote;
    }
   
    public void setFechaCducidad(String fecha){
        fechaCaducidad=fecha;
    }
   
    public void setNumeroLote(int numero){
        numeroLote=numero;
    }
   
    public String getPaisOrigen(){
        return paisOrigen;
    }
   
    public String getFechaEnvasado(){
        return fechaEnvasado;
    }
   
    public void setPaisOrigen(String paisOrigen){
        this.paisOrigen=paisOrigen;
    }
   
    public void setFechaEnvasado(String fechaEnvasado){
        this.fechaEnvasado=fechaEnvasado;
    }
   
    @Override
    public String toString(){
        return String.format("Fecha de Caducidad: " + fechaCaducidad + "\n" +
        "Número de lote: " + numeroLote + "\n" +
        "Pais de origen: " + this.paisOrigen +"\n" +
        "Fecha de envasado: " + this.fechaEnvasado +"\n");
    }
}


Clase Fresco

Código: [Seleccionar]
public class Fresco extends Producto
{
    //esta clase no tiene atributos propios, los tiene la superclase
   
   
    public Fresco(String fechaCaducidad, int numeroLote,String paisOrigen, String fechaEnvasado){
        super(fechaCaducidad,numeroLote,paisOrigen,fechaEnvasado);
       
    }
   
   
   
    @Override
    public String toString(){
        return String.format("Información del producto fresco: \n" + super. toString());
    }
}


Clase congelado:

Código: [Seleccionar]
public class Congelado extends Producto
{
    //información generica
    private double temperaturaMantenimiento;
   
    public Congelado(String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento){
        super(fechaCaducidad,numeroLote,paisOrigen,fechaEnvasado);
        this.temperaturaMantenimiento=temperaturaMantenimiento;
    }
   
    public double getTemperaturaMantenimiento(){
        return temperaturaMantenimiento;
    }
   
    public void setTemperaturaMantenimiento(double temperaturaMantenimiento){
        this.temperaturaMantenimiento=temperaturaMantenimiento;
    }
   
    @Override
    public String toString(){
        return String.format(super. toString() +
        "Temperatura de mantenimiento: " + this.temperaturaMantenimiento + "ºC" + "\n");
    }
}


clase refrigerado:

Código: [Seleccionar]
public class Refrigerado extends Congelado
{
   //información especifica
   private String codigo;
   
   public Refrigerado(String fechaCaducidad, int numeroLote,String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String codigo){
       super(fechaCaducidad,numeroLote,paisOrigen,fechaEnvasado,temperaturaMantenimiento);
       this.codigo=codigo;
    }
   
    public String getCodigo(){
        return codigo;
    }
   
    public void setCodigo(String codigo){
        this.codigo=codigo;
    }
   
    @Override
    public String toString(){
        return String.format("Información del producto refrigerado: \n" +
        super. toString() +
        "Codigo OSA: " + this.codigo +"\n" );
    }
}


Clase congelado por aire:

Código: [Seleccionar]
public class CongeladoAire extends Congelado
{
    private String composiciónAire;
   
    public CongeladoAire(String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String composiciónAire){
        super(fechaCaducidad, numeroLote, paisOrigen, fechaEnvasado,temperaturaMantenimiento);
        this.composiciónAire=composiciónAire;
    }
   
    public void setComposiciónAire(String composiciónAire){
        this.composiciónAire=composiciónAire;
    }
   
    public String getComposiciónAire(){
        return this.composiciónAire;
    }
       
   
    @Override
    public String toString(){
        return String.format("Información del producto congelado por aire: \n"+
        super.toString() +
        "Composición de aire: " + this.composiciónAire + "\n");
    }
   
}


clase congelado por agua:


Código: [Seleccionar]
public class CongeladoAgua extends Congelado
{
    private String salinidadAgua;
   
    public CongeladoAgua(String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String salinidadAgua){
        super(fechaCaducidad, numeroLote, paisOrigen, fechaEnvasado,temperaturaMantenimiento);
        this.salinidadAgua=salinidadAgua;
    }
   
    public void setSalinidadAgua(String salinidadAgua){
        this.salinidadAgua=salinidadAgua;
    }
   
    public String getSalinidadAgua(){
        return this.salinidadAgua;
    }
   
    @Override
    public String toString(){
        return String.format("Información del producto congelado por agua: \n"+
        super. toString() +
        "Salinidad del agua: " + this.salinidadAgua + "\n");
    }
       
}


clase congelado por nitrogeno:

Código: [Seleccionar]
public class CongeladoNitrogeno extends Congelado
{
    private String metodoCongelacion;
    private int tiempoExposicion;
   
    public CongeladoNitrogeno(String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String metodoCongelacion,int tiempoExposicion){
        super(fechaCaducidad, numeroLote, paisOrigen, fechaEnvasado,temperaturaMantenimiento);
        this.metodoCongelacion=metodoCongelacion;
        this.tiempoExposicion=tiempoExposicion;
    }
   
    @Override
    public String toString(){
        return String.format("Información del producto congelado por nitrogeno: \n"+
        super. toString() +
        "Metodo de congelación: " + this.metodoCongelacion + "\n" +
        "Tiempo de exposición al nitrogeno: " + this.tiempoExposicion + " segundos");
    }
       
}

Un saludo y gracias.

8
Hola, aquí está mi propuesta para este ejercicio.

He creado siete clases mas la clase del test. En el main se crea un ArrayList donde voy añadiendo los productos que doy de alta, para luego imprimir su información ayudandome de un for.

clase Producto:
Código: [Seleccionar]
public class Producto
{
    private String fechaCaducidad;
    private int numeroLote;
    private String paisOrigen;
    private String fechaEnvasado;
   
    public Producto(String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado){
        this.fechaCaducidad=fechaCaducidad;
        this.numeroLote=numeroLote;
        this.paisOrigen=paisOrigen;
        this.fechaEnvasado=fechaEnvasado;
    }
   
    public String getFechaCaducidad(){
        return fechaCaducidad;
    }
   
    public int getNumeroLote(){
        return numeroLote;
    }
   
    public void setFechaCducidad(String fecha){
        fechaCaducidad=fecha;
    }
   
    public void setNumeroLote(int numero){
        numeroLote=numero;
    }
   
    public String getPaisOrigen(){
        return paisOrigen;
    }
   
    public String getFechaEnvasado(){
        return fechaEnvasado;
    }
   
    public void setPaisOrigen(String paisOrigen){
        this.paisOrigen=paisOrigen;
    }
   
    public void setFechaEnvasado(String fechaEnvasado){
        this.fechaEnvasado=fechaEnvasado;
    }
   
    @Override
    public String toString(){
        return String.format("Fecha de Caducidad: " + fechaCaducidad + "\n" +
        "Número de lote: " + numeroLote + "\n" +
        "Pais de origen: " + this.paisOrigen +"\n" +
        "Fecha de envasado: " + this.fechaEnvasado +"\n");
    }
}

Clase Fresco
Código: [Seleccionar]
public class Fresco extends Producto
{
    //esta clase no tiene atributos propios, los tiene la superclase
   
   
    public Fresco(String fechaCaducidad, int numeroLote,String paisOrigen, String fechaEnvasado){
        super(fechaCaducidad,numeroLote,paisOrigen,fechaEnvasado);
       
    }
   
   
   
    @Override
    public String toString(){
        return String.format("Información del producto fresco: \n" + super. toString());
    }
}

Clase congelado:
Código: [Seleccionar]
public class Congelado extends Producto
{
    //información generica
    private double temperaturaMantenimiento;
   
    public Congelado(String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento){
        super(fechaCaducidad,numeroLote,paisOrigen,fechaEnvasado);
        this.temperaturaMantenimiento=temperaturaMantenimiento;
    }
   
    public double getTemperaturaMantenimiento(){
        return temperaturaMantenimiento;
    }
   
    public void setTemperaturaMantenimiento(double temperaturaMantenimiento){
        this.temperaturaMantenimiento=temperaturaMantenimiento;
    }
   
    @Override
    public String toString(){
        return String.format(super. toString() +
        "Temperatura de mantenimiento: " + this.temperaturaMantenimiento + "ºC" + "\n");
    }
}

clase refrigerado:
Código: [Seleccionar]
public class Refrigerado extends Congelado
{
   //información especifica
   private String codigo;
   
   public Refrigerado(String fechaCaducidad, int numeroLote,String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String codigo){
       super(fechaCaducidad,numeroLote,paisOrigen,fechaEnvasado,temperaturaMantenimiento);
       this.codigo=codigo;
    }
   
    public String getCodigo(){
        return codigo;
    }
   
    public void setCodigo(String codigo){
        this.codigo=codigo;
    }
   
    @Override
    public String toString(){
        return String.format("Información del producto refrigerado: \n" +
        super. toString() +
        "Codigo OSA: " + this.codigo +"\n" );
    }
}

Clase congelado por aire
Código: [Seleccionar]
public class CongeladoAire extends Congelado
{
    private String composiciónAire;
   
    public CongeladoAire(String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String composiciónAire){
        super(fechaCaducidad, numeroLote, paisOrigen, fechaEnvasado,temperaturaMantenimiento);
        this.composiciónAire=composiciónAire;
    }
   
    public void setComposiciónAire(String composiciónAire){
        this.composiciónAire=composiciónAire;
    }
   
    public String getComposiciónAire(){
        return this.composiciónAire;
    }
       
   
    @Override
    public String toString(){
        return String.format("Información del producto congelado por aire: \n"+
        super.toString() +
        "Composición de aire: " + this.composiciónAire + "\n");
    }
   
}

clase congelado por agua
Código: [Seleccionar]
public class CongeladoAgua extends Congelado
{
    private String salinidadAgua;
   
    public CongeladoAgua(String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String salinidadAgua){
        super(fechaCaducidad, numeroLote, paisOrigen, fechaEnvasado,temperaturaMantenimiento);
        this.salinidadAgua=salinidadAgua;
    }
   
    public void setSalinidadAgua(String salinidadAgua){
        this.salinidadAgua=salinidadAgua;
    }
   
    public String getSalinidadAgua(){
        return this.salinidadAgua;
    }
   
    @Override
    public String toString(){
        return String.format("Información del producto congelado por agua: \n"+
        super. toString() +
        "Salinidad del agua: " + this.salinidadAgua + "\n");
    }
       
}

clase congelado por nitrogeno
Código: [Seleccionar]
public class CongeladoNitrogeno extends Congelado
{
    private String metodoCongelacion;
    private int tiempoExposicion;
   
    public CongeladoNitrogeno(String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String metodoCongelacion,int tiempoExposicion){
        super(fechaCaducidad, numeroLote, paisOrigen, fechaEnvasado,temperaturaMantenimiento);
        this.metodoCongelacion=metodoCongelacion;
        this.tiempoExposicion=tiempoExposicion;
    }
   
    @Override
    public String toString(){
        return String.format("Información del producto congelado por nitrogeno: \n"+
        super. toString() +
        "Metodo de congelación: " + this.metodoCongelacion + "\n" +
        "Tiempo de exposición al nitrogeno: " + this.tiempoExposicion + " minutos");
    }
       
}

clase del main
Código: [Seleccionar]
import java.util.ArrayList;

public class TestHerencia3
{
    public static void main(String[] args){
        //se crea una lista para contener todos los productos
        ArrayList<Producto> listaProductos=new ArrayList<Producto>();
       
        //se crean los productos
       
        //parametros del fresco
        //String fechaCaducidad, int numeroLote,String paisOrigen, String fechaEnvasado
        //Crear 2
        Fresco productoFresco1 = new Fresco("12/2/16", 565, "España", "1/1/16");
        listaProductos.add(productoFresco1);
        Fresco productoFresco2 = new Fresco("12/5/18", 456, "España", "1/5/15");
        listaProductos.add(productoFresco2);
        //parametros del refrigerado:
        //String fechaCaducidad, int numeroLote,String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String codigo
        //crear 3
        Refrigerado productoRefrigerado1 = new Refrigerado("12/8/18", 2300,"España", "13/5/14", 4, "B35-267");
        listaProductos.add(productoRefrigerado1);
        Refrigerado productoRefrigerado2 = new Refrigerado("12/8/17", 2385,"España", "7/3/15", 5, "Z85-29");
        listaProductos.add(productoRefrigerado2);
        Refrigerado productoRefrigerado3 = new Refrigerado("1/3/16", 123,"España", "4/1/15", -1, "T3-45");
        listaProductos.add(productoRefrigerado3);
        //parametros del congelado por aire
        //String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String composiciónAire
        //composición del aire: %nitrogeno,%oxigeno,%dioxido de carbono,%vapor de agua
        //crear 2
        Congelado congeladoAire1 = new CongeladoAire("12/8/18", 2300,"España", "13/5/14", -25.0,"Nitrogeno:78%%,Oxigeno:21%%,Dioxido de carbono:0,03%%,Vapor de agua:variable");
        listaProductos.add(congeladoAire1);
        Congelado congeladoAire2 = new CongeladoAire("12/8/16", 4524,"España", "10/11/14", -25.0,"Nitrogeno:78%%,Oxigeno:21%%,Dioxido de carbono:0,03%%,Vapor de agua:variable");
        listaProductos.add(congeladoAire2);
        //parametros congelado por agua
        //String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String salinidadAgua
        //salinidad del agua: gr/litro
        //crear 2
        Congelado congeladoAgua1 = new CongeladoAgua("1/3/15", 56,"España", "1/3/16", -20.0,"<0,5g/l");
        listaProductos.add(congeladoAgua1);
        Congelado congeladoAgua2 = new CongeladoAgua("12/2/15", 89,"España", "12/2/16", -20.0,"<0,5g/l");
        listaProductos.add(congeladoAgua2);
        //parametros congelado por nitrogeno
        //String fechaCaducidad, int numeroLote, String paisOrigen, String fechaEnvasado, double temperaturaMantenimiento, String metodoCongelacion,int tiempoExposicion
        //crear 1
        Congelado congeladoNitrogeno = new CongeladoNitrogeno("1/3/15", 32,"España", "1/3/16", -30.0,"Tunel de refrigeración",5);
        listaProductos.add(congeladoNitrogeno);
       
        // se llama a los metodos correspondientes para obtener la información de cada producto
        // prueba para imprimir información de cada producto
        /**
        System.out.println("Información del producto fresco \n" + productoFresco1.toString());
        System.out.println("Información del producto refrigerado \n" + productoRefrigerado1.toString());
        System.out.println("Información del producto congelado por aire \n" + congeladoAire1.toString());
        System.out.println("Información del producto congelado por agua \n" + congeladoAgua1.toString());
        System.out.println("Información del producto congelado por nitrogeno \n" + congeladoNitrogeno.toString());
        */
       
       //Se imprime la información de todos los productos creados
        for(Producto p : listaProductos){
            System.out.println(p);
        }
    }
}

Un saludo y gracias por la ayuda.

9
Hola, aqui os pongo mi solución para este ejercicio.

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

En este caso, para representar la información de cada objeto, no he usado los metodos getter de cada objeto, si no que he sobrescrito el metodo toString() de cada objeto, para dar el formato que quiero a la salida de cada objeto.


Clase Producto:

Código: [Seleccionar]
public class Producto
{
    private String fechaCaducidad;
    private int numeroLote;
   
    public Producto(String fechaCaducidad, int numeroLote){
        this.fechaCaducidad=fechaCaducidad;
        this.numeroLote=numeroLote;
    }
   
    public String getFechaCaducidad(){
        return fechaCaducidad;
    }
   
    public int getNumeroLote(){
        return numeroLote;
    }
   
    public void setFechaCducidad(String fecha){
        fechaCaducidad=fecha;
    }
   
    public void setNumeroLote(int numero){
        numeroLote=numero;
    }
   
    @Override
    public String toString(){
        return String.format("Fecha de Caducidad: " + fechaCaducidad + "\n" +
        "Número de lote: " + numeroLote + "\n");
    }
}


clase Fresco

Código: [Seleccionar]
public class Fresco extends Producto
{
    private String paisOrigen;
    private String fechaEnvasado;
   
    public Fresco(String fechaCaducidad, int numeroLote,String paisOrigen, String fechaEnvasado){
        super(fechaCaducidad,numeroLote);
        this.paisOrigen=paisOrigen;
        this.fechaEnvasado=fechaEnvasado;
    }
   
    public String getPaisOrigen(){
        return paisOrigen;
    }
   
    public String getFechaEnvasado(){
        return fechaEnvasado;
    }
   
    public void setPaisOrigen(String paisOrigen){
        this.paisOrigen=paisOrigen;
    }
   
    public void setFechaEnvasado(String fechaEnvasado){
        this.fechaEnvasado=fechaEnvasado;
    }
   
    @Override
    public String toString(){
        return String.format(super. toString() +
        "Pais de origen: " + this.paisOrigen +"\n" +
        "Fecha de envasado: " + this.fechaEnvasado +"\n");
    }
}


Clase Refrigerado

Código: [Seleccionar]
public class Refrigerado extends Producto
{
   //información especifica
   private String codigo;
   
   public Refrigerado(String fechaCaducidad, int numeroLote, String codigo){
       super(fechaCaducidad,numeroLote);
       this.codigo=codigo;
    }
   
    public String getCodigo(){
        return codigo;
    }
   
    public void setCodigo(String codigo){
        this.codigo=codigo;
    }
   
    @Override
    public String toString(){
        return String.format(super. toString() +
        "Codigo OSA: " + this.codigo +"\n" );
    }
}


Clase congelado

Código: [Seleccionar]
public class Congelado extends Producto
{
    //información generica
    private double temperaturaCongelación;
   
    public Congelado(String fechaCaducidad, int numeroLote, double temperaturaCongelación){
        super(fechaCaducidad,numeroLote);
        this.temperaturaCongelación=temperaturaCongelación;
    }
   
    public double getTemperaturaCongelación(){
        return temperaturaCongelación;
    }
   
    public void setTemperaturaCongelación(double temperaturaCongelación){
        this.temperaturaCongelación=temperaturaCongelación;
    }
   
    @Override
    public String toString(){
        return String.format(super. toString() +
        "Temperatura de congelación: " + this.temperaturaCongelación + "\n");
    }
}


Clase testherencia2

Código: [Seleccionar]
public class TestHerencia2
{
    public static void main(String[] args){
        //se crean los productos
        Fresco productoFresco = new Fresco("12/2/16", 565, "España", "1/1/16");
        Refrigerado productoRefrigerado = new Refrigerado("12/8/16", 235, "B345-23");
        Congelado productoCongelado = new Congelado ("2/5/16", 4567, -24);
        // se llama a los metodos correspondientes para obtener la información de cada producto
       
        System.out.println("Información del producto fresco \n" + productoFresco.toString());
        System.out.println("Información del producto refrigerado \n" + productoRefrigerado.toString());
        System.out.println("Información del producto congelado \n" + productoCongelado.toString());
    }

}

Un saludo y gracias.


10
Gracias por la corrección. La verdad es que no se como se me paso, ya que este ejercicio va sobre la herencia en particular y ese es el ejemplo claro de herencia....

Con respecto a los nombres tienes mucha razón y me suele pasar. Creo que es porque no me gusta poner nombres largos y a la hora de nombrar varios campos sobre algo en particular, como se dice, yo me entiendo, pero claro, no es correcto ya que cualquier otro no lo va a tener tan claro. Lo corregire para futuras ocasiones.

Un saludo y gracias.

11
Hola, la solución propuesta soluciona el problema, pero se lleva el atributo fuera de la clase. Recomiendo consultar la solución indicada en https://www.aprenderaprogramar.com/foros/index.php?topic=2354 ya que se explica cómo mantener el atributo en la misma clase y evitar el error.

Saludos.

Gracias por el enlace, no se me habia ocurrido esa solución, de hecho, no sabia que se podia hacer asi....
Pero ahora me surge una duda sobre estas soluciones. En ambos casos, se incluye un constructor para la clase Test, y en ambos casos no se incluye la palabra Public delante. ¿por que?
Tampoco sabia que se podia instanciar la clase que contiene el Main, y creo que en ninguno de los ejercicios que he hecho hasta ahora, esta clase incluia un constructor.

Muchas gracias por la ayuda.
Un saludo.

12
Hola, adjunto el codigo de las siete clases que creo que formarian el esquema de las relaciones de herencia y uso.

Código: [Seleccionar]
public class Producto
{
    protected String fechaCaducidad;
    protected int numeroLote;
   
    public Producto(){
        fechaCaducidad="";
        numeroLote=-1;
    }
   
    //metodos setters y getters genericos
}

Código: [Seleccionar]
public class Fresco extends Producto
{
    //información especifica
}

Código: [Seleccionar]
public class Refrigerado extends Producto
{
   //información especifica
}

Código: [Seleccionar]
public class Congelado extends Producto
{
    //información generica
}

Código: [Seleccionar]
public class CongeladoNitrogeno extends Congelado
{
    private double temperaturaCongelación;
   
    //constructor
   
    //metodos
   
}

Código: [Seleccionar]
public class CongeladoAire extends Congelado
{
     private double temperaturaCongelación;
   
    //constructor
   
    //metodos
}

Código: [Seleccionar]
public class CongeladoAgua extends Congelado
{
     private double temperaturaCongelación;
   
    //constructor
   
    //metodos
}

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

public class Envio
{
   private String listaEnvios;   //nombre de la lista de envios
   ArrayList<Producto> miEnvio=new ArrayList<Producto>(); //array de envios
   
}

Espero  que sea esto lo que se pedia en este ejercicio...
Un saludo.

13
Para este ejercicio estas son mis respuestas:

1) El error que recibimos es que la variable no estatica this no se puede referenciar desde  un metodo estatico.

2)los metodos de clase estaticos no pueden invocar a un metodo de instancia de la misma clase, que es lo que esta haciendo this.getAtrib().

3)la solución seria crear una clase que contuviera el parametro atributo1 y el metodo getAtrib1

Código: [Seleccionar]
public class Atributo
{
    int atributo1;
   
    public Atributo(){
        atributo1=0;
    }
   
    public int getAtrib1(){
        return atributo1;
    }
   
}

Código: [Seleccionar]
public class NuevoTest
{   
    public static void main (String[] Args){
        Atributo atrib=new Atributo();
       
        System.out.println("Mensaje 1");
        System.out.println("Atributo 1 vale " + atrib.getAtrib1());
    }
}

Un saludo.

14
OK, pues aqui esta la corrección, ahora se asuma que el peso que nos dan es el de 1 metro cubico.

Código: [Seleccionar]
public class TestTiposEnumerados
{
   public static void main(String[] args){
       TipoDePiedra piedra=TipoDePiedra.CALIZA; //se crea el objeto de tipo enumerado
       
       System.out.println("Estos son los pesos de los palets de cada tipo de piedra\n");
       for(TipoDePiedra aux:piedra.values()){
           System.out.println("El palet de " + aux.toString() + " pesa " + (2.27f*aux.getPesoEspecifico())+ " kg");
        }
    }
}

Un saludo.

15
Muchas gracias por las respuestas. Lo del println ha sido un despiste por la constunmbre de utilizarlo siempre en ese formato...

En cuanto a la modificación del metodo, pues la verdad es que no lo habia visto y tienes razon, tal y como lo corrijes no habra diferencia entre escribir en mayusculas o minusculas.

Gracias y un saludo.

16
Hola,

Aqui dejo me solución a este ejercicio. He dado por cierto que el peso que nos da el ejercicio es el peso de un palet con el tipo de piedra correspondiente...

Código: [Seleccionar]
public enum TipoDePiedra
{
    CALIZA(1200),
    MARMOL(1423.55f),
    PIZARRA(1325),
    CUARZITA(1466.22f);
   
    //campo tipo constante
   
    private float pesoEspecifico;
   
    //constructor
    TipoDePiedra(float pesoEspecifico){
        this.pesoEspecifico=pesoEspecifico;
    }
   
    public float getPesoEspecifico(){
        return this.pesoEspecifico;
    }
   
   
}

Código: [Seleccionar]
public class TestTiposEnumerados
{
   public static void main(String[] args){
       TipoDePiedra piedra=TipoDePiedra.CALIZA; //se dra el objeto de tipo enumerado
       
       System.out.println("Estos son los pesos de los palets de cada tipo de piedra\n");
       for(TipoDePiedra aux:piedra.values()){
           System.out.println("el palet de " + aux.toString() + " pesa " + aux.getPesoEspecifico()+ " kg");
        }
    }
}

Un saludo.

17
Hola,
os dejo para que comprobeis mi respuesta a este ejercicio.
He utilizado la clase vehiculo y la clase EntradaDeTeclado, de otros ejercicios.

Código: [Seleccionar]
public class Vehiculo
{
    public enum MarcaDeVehiculo {FORD, TOYOTA, SUZUKI, RENAULT, SEAT};
    private String matricula;
    private MarcaDeVehiculo marca;

    public Vehiculo(){
    }

    public void setMatricula(String matricula){
        this.matricula=matricula;
    }

    public String getMatricula(){
        return this.matricula;
    }

    public void setMarca(MarcaDeVehiculo marca){
        this.marca=marca;
    }

    public MarcaDeVehiculo getMarca(){
        return marca;
    }

    public boolean comprobarMarca(){
        boolean done=true;
        marca=MarcaDeVehiculo.FORD;//se crea el objeto MarcaDeVehiculo
        EntradaDeTeclado entrada1=new EntradaDeTeclado();//se introduce una marca de coche
        for(MarcaDeVehiculo aux:marca.values()){
            if(entrada1.getEntrada().toString().equals(aux.toString().toLowerCase())){
                this.marca=aux; //La marca introducida se asigna a la variable marca.
                return done;
            }
        }
        return done=false;
    }

}

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

public class EntradaDeTeclado
{
    private String entradaTeclado; //variable de instancia(campo) de ´la clase
   
    public EntradaDeTeclado(){ //constructor
        entradaTeclado=""; //inicializamos la instancia de la clase
        pedirEntrada(); // Esto es una llamada a un método interno. Al crear un objeto automaticamente, ejecutamos el metodo
    }
   
    public void pedirEntrada(){ //metodo de la clase
        Scanner entradaEscaner=new Scanner(System.in);
        entradaTeclado=entradaEscaner.nextLine();
    }
   
    public String getEntrada(){
        return entradaTeclado;
    }
       
 }

Código: [Seleccionar]
public class TestTipoEnum
{
    public static void main(String[] Args){
        Vehiculo.MarcaDeVehiculo marca=Vehiculo.MarcaDeVehiculo.SEAT;
        //marca=MarcaDeVehiculo.SEAT;//¿siempre hay que declarar el tipo dandole un valor?
        Vehiculo coche=new Vehiculo();

        System.out.println("Iniciamos el test\nIntroduce una de estas marca de coche");
        for(Vehiculo.MarcaDeVehiculo aux:marca.values()){
            System.out.println(aux.toString() + "\t");
        }


        while(!coche.comprobarMarca()){ //se comprueba que la marca de coche sea correcta
            System.out.println("la marca introducida no es correcta, vuelve a intentarlo");
        }

        System.out.println("Ahora introduce una matricula");
        EntradaDeTeclado entrada2=new EntradaDeTeclado();

        coche.setMatricula(entrada2.getEntrada());
        System.out.println("la marca que has elegido es " + coche.getMarca().toString() + " y su matricula es " + coche.getMatricula() );
       
    }

}

Ahora unas preguntas:
- ¿siempre que se cree un tipo enumerado hay que asignarle un valor de los que posee el enumerado?

- ¿porque, a pesar de utilizar \t para escribir la lista de marcas del enumerado, las marcas salen una debajo de otra y no una al lado de la otra, como esperaba?

Muchas gracias por vuestra ayuda y consejos.
Un saludo.

18
Muchas gracias por la aclaración, si me has ayudado, ya que no podia quitar el warning y no entendia porque aparecia.
Por lo que veo, entonces, a la hora de crear un iterador, no siempre es imprescindible especificar el tipo que recibirá, si los objetos, aunque de distinto tipo, implementen la misma interface, ¿me equivoco?

Con respecto a la modificación, en la forma que lo haces se identifica mejor el elemento de salida.
Muchas gracias.

19
Hola,
Pues tienes razon, no me di cuenta...
Aqui mando mi nuevo codigo, pero me ha dado muchisimos problemas y he tenido que consultar varias opciones en el foro.
Aun asi, me compila con este warning:
"uses unchecked or unsafe operations. Recompile with -Xlintuncheked for details."
y no se que significa.
 El objetivo del ejercicio es recorrer una lista formada por distintos tipos de objetos.
Pero no me queda clara la forma de obtener, imprimir, esa lista. No consigo que salgan en el orden especificado.
Si me podeis ayudar con algun consejo.


Código: [Seleccionar]
import java.util.HashSet;
import java.util.TreeSet;
import java.util.ArrayList;
import java.util.Set;
import java.util.Iterator;

public class TestVariablePolimorfica
{
    public static void main(String[]args){
        ArrayList<Set>miLista=new ArrayList<Set>();
        HashSet<String>miListaDeStrings=new HashSet<String>();
        TreeSet<Integer>miListaDeIntegers=new TreeSet<Integer>();

        miListaDeStrings.add("luna");
        miListaDeStrings.add("sol");
        miListaDeStrings.add("saturno");

        miListaDeIntegers.add(2);
        miListaDeIntegers.add(8);
        miListaDeIntegers.add(5);

        miLista.add(miListaDeStrings);
        miLista.add(miListaDeIntegers);

     
        for(Set tmp:miLista){
            Iterator<Set>it=tmp.iterator(); //Cuando compilo me da un warning: "uses unchecked or unsafe operations."
                                            // "Recompile with -Xlintuncheked for details."
                                           
            while(it.hasNext()){
                System.out.println(it.next());
            }
        }
    }
}
Un saludo y gracias.

20
Hola,
Esta es mi solución para este ejercicio, pero tengo una duda respecto al enunciado y no se si es correcto.El ejercicio pide una salida de texto concreta, Sol ,Luna, Saturno, 8, 5, 2.
Pero la salida que devuelve el objeto iterator es Luna, Saturno, Sol, 2, 5, 8. ya que llas clases HasNext y TreeSet ordenan internamente los objetos que se les añaden.
¿El ejercicio pide que la salida sea en concreta la que pide? es decir, colocando en un orden determinado cada componente.

Este es mi codigo:

Código: [Seleccionar]
import java.util.HashSet;
import java.util.TreeSet;
import java.util.ArrayList;
import java.util.Set;
import java.util.Iterator;

public class TestVariablePolimorfica
{
    public static void main(String[]args){
        ArrayList<Set>miLista=new ArrayList<Set>();
        HashSet<String>miListaDeStrings=new HashSet<String>();
        TreeSet<Integer>miListaDeIntegers=new TreeSet<Integer>();

        miListaDeStrings.add("luna");
        miListaDeStrings.add("sol");
        miListaDeStrings.add("saturno");

        miListaDeIntegers.add(2);
        miListaDeIntegers.add(8);
        miListaDeIntegers.add(5);

        miLista.add(miListaDeStrings);
        miLista.add(miListaDeIntegers);

        //System.out.println(miLista.size());

        Iterator<String>itS=miListaDeStrings.iterator();
        while(itS.hasNext()){
            String tmp=itS.next();
            System.out.print(tmp + ",");
        }
        Iterator<Integer>itI=miListaDeIntegers.iterator();

        while(itI.hasNext()){
            Integer tmp=itI.next();
            System.out.print(tmp);
            if(itI.hasNext()){
                System.out.print(",");
            }else{
                System.out.print(".\n");
            }

        }

    }
}

Un saludo.

Páginas: [1] 2 3

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