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

Páginas: 1 ... 10 11 12 13 14 [15] 16 17 18 19 20
281
Segun lo que te leo, quieres iterar una lista de listas, con sus objetos dentro.

Esto se puede conseguir, hablo así a votepronto, con un bucle de Iterator sobre otro Iterator.

for (Iterator<List> iter = listaDeListas.iterator(); iter.hasNext();){

    for(Iterator<Producto> temp = iter.iterator(); temp.hasNext(); ) {
                  temp. next() <----- este es cada uno de los productos de las listas,
        }
}

Creo que por ahí va tu duda. Y me suena que en una ocasión lo resolví así yo.

P.D. donde pone List si sabes que son ArrayList lo cambias.

282
me compartes el codigo cuando lo resuelvas amigo! Asi me sirve de guia para aprender algo nuevo!

Cuenta con ello Dan ;)

283
A si perdonad dan y javi, no dije nada de lo de abstracto public, al estar practicando, decidí escribirlo igual que en la variable abstract static creo q es, aunque como decís lo hace automático. 

gracias por el comentario sobre la estructura que era lo que me preocupaba más saber.

Dan en principio por lo que se ve en tu captura fallo el nextline() porque no había next línea, quizá me falto poner en try catch la excepción de no next línea, pero a mi no me ha saltado nunca. lo mirare otro rato. pq además fíjate que hago .close en los scanner para que se reinicien x si acaso.

284
Buenas, primero gracias a Dan por sus percepciones, te diste cuenta del == "" , es un fallazo si, al copiPastearlo de ejercicios anteriores se me coló.

Sobre la excepcion que te salta, fijate que es un "no line found", así que no tiene nada que ver con los try catch, a mi no me ha saltado, pero poniendome a deducir, puede ser por la falta del equals("");  y que introdujeras una cadena vacía y te saltó.

Polimorfismo, en este caso que era ejercicio de Interface pues igual debia hacer la lista de Edificio, toda la razón pero también usa polimorfismo en Edificación.  No es menos polimorfismo segun mi esquema, sino hariamos solo Arrays de Object ;)

Sobre mi esquema alguien mas puede comentarme, ya que lo hice algo diferente al planteado y si vienen criticas las tomare en cuenta y las corregiré.

P.D. Cambié el equals Dan, añado en adjuntos jejeje

285
Buenos días, a la espera de la corrección del ejercicio CU00697B, di por finalizado el curso "Java desde cero" de aprenderaprogramar. Comentar que pasados estos dias de puente empezaré el avanzado, no me iré! jeje

Y bueno empezaré a ayudar más activamente a los que inicien el curso.

Ha sido un curso excelente, mis agradecimientos a todos desde Mario, Ogramar, Alex, Javi, Toni ...(seguro que me dejo muchos) pero, un agradecimiento infinito y sigo aquí con vosotros no desaparezco, gracias por el tiempo dedicado y los conocimientos transmitidos.

;) La semana que viene os doy la lata con el avanzado ya.

286
Buenas dejo mi solución del ejercicio. Comentar que he modificado algo, he creado una clase abstracta intermedia, entre la interface Edificio y los dos tipos actuales de edificios, clase llamada Edificacion. El resto creo que hago todo lo que pide el ejercicio.

Mil gracias tienes razón, adjunto el correcto ;)


287
Nada nada, solo faltaría, en cuanto termine con interface lo vuelvo a revisar por que es interesante aprender, si tu propuesta es más exacta y completa, "el desconocimiento de la ley no exime de su cumplimiento" debo aprender yo ;)

288
Jejeje bueno lo hago porque entiendo que es una labor ardua, y si puedo ayudaros a detectar algo que pueda ( quizá esque yo no lo entiendo bien ) estar incorrecto, lo digo. No por nada más.

Sobre errores en la web, hay uno que yo me he dado cuenta, en el curso "java desde cero" si clicas en cualquier tema... ejemplo tema 12, la web te lleva al tema 12 -1, al 11.

En otros cursos no pasa, no es muy importante pero por que lo sepais no esta de más.

289
Buenas Ogramar, gracias por tu tiempo como siempre.

Sobre la  edad, si debia indicarlo para que se sepa en la salida del print.

Las eñes gracias por decirmelo he de mentalizarme, porque cobra mucho sentido, es un caracter que solo tienen los teclados hispanos.

La implementación, del metodo getCamaraEnQueTrabaja, sé (o creo te refieres a eso) debería ser abstracto el método, pero quise probar a definir un método dentro de una clase abstracta, para ver si con instancias de subclase podia llamarlo. Fue más una prueba, comprendo lo que quieres decirme, con cualquier cambio en subclases daria error.

Entrada datos, es cierto la he fusionado con las funciones de cada campo solicitado, por lo tanto ya es más un GestorDeDatos, tomo nota.

Gracias como siempre, tengo muy en cuenta todo lo que se me dice.

290
Buenas tardes, interesantisimo el tema de interface, aunque me temo que costará asimilarlo todo.

Antes de nada dos erratas en el texto que vi, la segunda me trajo un poco loco hasta que entendí.

Citar
Una clase puede implementar uno o varios interfaces en Java (se indica con extends NombreInterface1, NombreInterface2, …etc.), pero sólo puede extender una clase. Implementar varios interfaces en una sola clase es lo más parecido que tiene Java a la herencia múltiple.
ahí es implements.

Citar
c) En algunos casos es igual de viable definir una clase como interfaz que como clase abstracta, pero puestos en esta situación preferiremos optar por una interfaz porque es más flexible y extensible: nos va a permitir que muchas clases implementen la interfaz (aprovechamos la herencia múltiple de las interfaces). En cambio, una clase abstracta sólo nos permite que una clase herede de ella.
sería; una clase solo puede heredar una clase, abstracta (o no) no varías, cosa que si puede implementar varias interfaces. Me obligó a buscar porque clase abstracta, la pueden extender varias clases ;)

Dicho esto, mis respuestas que alguna, no tengo segura del todo.

Pregunta
a) ¿Una clase puede heredar de dos clases en Java?
Respuesta
No, una clase solo puede extender una clase, heredar de ella.

Pregunta
¿Una interface Java puede tener métodos que incluyan una sentencia while? ¿Una interface Java puede tener métodos que incluyan una sentencia System.out.println?
Respuesta
No y no, solo definen metodos, que deben ser sobreescritos (o en este caso escritos) por las clases que implemente la interface.

Pregunta
¿Un objeto Java puede ser del tipo definido por una interface? ¿Un objeto Java puede ser al mismo tiempo del tipo definido por una interface y del tipo definido por una clase que no implementa la interface? ¿Un objeto Java puede ser al mismo tiempo del tipo definido por una interface y del tipo definido por una clase que implementa la interface?
Respuesta
Sí, definido si, inicializado debe ser con una clase concreta.

 La segunda pregunta;
Pensandolo diría que no, pues si haces List <String> miLista; luego debe ser inicializada con alguna que implemente List. Pero, y si la clase extiende de ese tipo? aunque no implemente la interface, aunque claro entonces no podria tener las propiedades o metodos de la interfaz. La respuesta es NO.

Y la ultima es sí, como el ejemplo anterior List <String> miLista = new ArrayList <String>();

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

Buenas tardes, dejo aquí la solución a mi ejercicio (para descargar pulsar en el icono del archivo estando logado en el foro), comentar que distingo entre años de senador y años de congresista, porque así en una ampliación del programa se podria distinguir si esa persona concreta a llevado X como senador y X como congresista.

Descarté al final usar enums para la camara que representan pues al seleccionar 1 o 2 ya sabía si era senador o congresista en el modelo que planteo de menu.



292
Mmmm vale.. lo de interfaces, como aún no he llegado, no te he entendido bien pero cuando llegue vuelvo a este hilo :) y cambio lo que sea necesario

293
Dejo mi ejercicio modificado, una dimensionPrincipal protected y poco más diferente. Fue un despiste de lectura, pero es importante asegurarse bien de lo que se requiere antes de todo.

Clase Figura
Código: [Seleccionar]

/**
 * Clase Figura. Ejercicio 694B
 *
 * @author Lorenzo31
 * @version 27.04.2015
 */

public class Figura{

    protected double dimensionPrincipal;

    public Figura(double dimensionPrincipal){
        this.dimensionPrincipal = dimensionPrincipal;
    }
   
    //Getter
    public double getDimensionPrincipal(){ return dimensionPrincipal; }
   
    //Setter
   
    public void setDimensionPrincipal(double dimensionPrincipal){
        this.dimensionPrincipal = dimensionPrincipal; }
   
}

Clase Circulo

Código: [Seleccionar]

/**
 * Clase Circulo extiende a Figura. Ejercicio 694B
 *
 * @author Lorenzo31
 * @version 27.04.2015
 */

public class Circulo extends Figura {

    private final static double PI = 3.1416;

    //Constructor
    public Circulo(double radio){
        super(radio); }


    //Getter

    public double getPi() { return PI; }

    //Método calcular area
    public double calcularArea(){ return PI * Math.pow(dimensionPrincipal,2); }

    //Método sobreEscrito Equals

    public boolean equals(Object obj){
        if (obj instanceof Circulo){ Circulo temp = (Circulo) obj;
            if( this.dimensionPrincipal == temp.getDimensionPrincipal() ) { return true; } else { return false; }
        }else { return false; }
    }


}


Clase Cuadrado

Código: [Seleccionar]

/**
 * Clase Cuadrado extiende a Figura. Ejercicio 694B
 *
 * @author Lorenzo31
 * @version 27.04.2015
 */

public class Cuadrado extends Figura {


    //Constructor
    public Cuadrado(double lado){
        super(lado); }

    //Método calcular area
    public double calcularArea(){ return Math.pow(dimensionPrincipal,2); }   

    //Método equals sobreescrito
    public boolean equals(Object obj){
        if(obj instanceof Cuadrado){ Cuadrado temp = (Cuadrado) obj;

            if (this.dimensionPrincipal == temp.getDimensionPrincipal() ){ return true; } else { return false; }

        }else { return false; }
    }   
}

Clase TestIgualdad

Código: [Seleccionar]

/**
 * Clase TestIgualdad.  Ejercicio 694B
 *
 * @author Lorenzo31
 * @version 27.04.2015
 */
public class TestIgualdad {
   
    public static void main (String [] args) {
       
        Circulo circulo1 = new Circulo(5.5);
       
        Circulo circulo2 = new Circulo (6.5);
       
        Circulo circulo3 = new Circulo(5.5);
       
       
        Cuadrado cuadrado1 = new Cuadrado(4.1);
       
        Cuadrado cuadrado2 = new Cuadrado(4.1);
       
        Cuadrado cuadrado3 = new Cuadrado(4.3);
       
       
        System.out.println("Son iguales el cuadrado1 y el cuadrado2: " + cuadrado1.equals(cuadrado2));
        System.out.println("Son el mismo objeto cuadrado1 y cuadrado2: " + (cuadrado1 == cuadrado2));
       
        System.out.println("Son iguales el cuadrado1 y el cuadrado3: " + cuadrado3.equals(cuadrado1) );
       
        System.out.println("Son iguales el circulo1 y el circulo2: " + circulo2.equals(circulo1) );
       
        System.out.println("Son iguales el circulo1 y el circulo3: " + circulo1.equals(circulo3) );
    }
}

294
acabáramos... no leí el atributo principal, aun así pense en hacerlo, lado y radio sean la misma cosa, mañana lo modifico y lo subo, no leí bien .. gracias por el matiz y si se como hacerlo.
gracias x hacerme dar cuenta.

295
Buenas rubens23 en principio todo lo veo ok.

Incluso la modificación de atributos de los objetos SalonCasa y CocinaCasa.


Si me dejas decirte algo, en tu funcion getDatosCasa(),
        int numeroDeTelevisores = salonCasa.getNumeroDeTelevisores();
        String tipoSalon = salonCasa.getTipoSalon();
        boolean esIndependiente = cocina.getEsIndependiente();
        int numeroDeFuegos = cocina.getNumeroDeFuegos();

esto podrias ahorrartelo, de la siguiente forma:

 public String getDatosCasa(){
       
        String datosCasa = "Los datos de la casa son: Televisiones "+ salonCasa.getNumeroDeTelevisores() + ", tipo de salón " + salonCasa.getTipoSalon() + ", cocina independiente " + cocina.getEsIndependiente() + ", numero de fuegos de la cocina " + cocina.getNumeroDeFuegos() + ", superficie de la casa "+ superficie + " m2, dirección " + direccion;
     
        return datosCasa;
    }

296
Buenas dejo aquí mi solución del ejercicio. Sin más y muy interesante lo de sobreescribir equals, y cualquier método, que en tiempo de ejecución busca si la instancia a la que apunta en ese momento tiene sobreescrito X método del contenedor.

Por cierto no he sido capaz de detectar con esta configuración de ejercicio ningun elemento comun en la clase Figura, si fuera mas extenso supongo que saldría algo.

Clase Figura

Código: [Seleccionar]

/**
 * Clase Figura. Ejercicio 694B
 *
 * @author Lorenzo31
 * @version 27.04.2015
 */

public class Figura{
   
    public Figura(){ /*vacio*/ }

}


Clase Circulo

Código: [Seleccionar]

/**
 * Clase Circulo extiende a Figura. Ejercicio 694B
 *
 * @author Lorenzo31
 * @version 27.04.2015
 */

public class Circulo extends Figura {

    private double radio;
    private final static double PI = 3.1416;

    //Constructor
    public Circulo(double radio){
        this.radio = radio; }

    //Setter   
    public void setRadio(double radio){ this.radio = radio; }

    //Getters
    public double getRadio(){ return radio; }

    public double getPi() { return PI; }

    //Método calcular area
    public double calcularArea(){ return PI * Math.pow(radio,2); }

    //Método sobreEscrito Equals

    public boolean equals(Object obj){
        if (obj instanceof Circulo){ Circulo temp = (Circulo) obj;
            if( this.radio == temp.getRadio() ) { return true; } else { return false; }
        }else { return false; }
    }


}


Clase Cuadrado

Código: [Seleccionar]


/**
 * Clase Cuadrado extiende a Figura. Ejercicio 694B
 *
 * @author Lorenzo31
 * @version 27.04.2015
 */

public class Cuadrado extends Figura {

    private double lado;

    //Constructor
    public Cuadrado(double lado){
        this.lado = lado; }

    //Getter
    public double getLado(){ return lado; }

    //Setter
    public void setLado(double lado){ this.lado = lado; }

    //Método calcular area
    public double calcularArea(){ return Math.pow(lado,2); }   

    //Método equals sobreescrito
    public boolean equals(Object obj){
        if(obj instanceof Cuadrado){ Cuadrado temp = (Cuadrado) obj;

            if (this.lado == temp.getLado() ){ return true; } else { return false; }

        }else { return false; }
    }   
}


Clase TestIgualdad

Código: [Seleccionar]

/**
 * Clase TestIgualdad.  Ejercicio 694B
 *
 * @author Lorenzo31
 * @version 27.04.2015
 */
public class TestIgualdad {
   
    public static void main (String [] args) {
       
        Circulo circulo1 = new Circulo(5.5);
       
        Circulo circulo2 = new Circulo (6.5);
       
        Circulo circulo3 = new Circulo(5.5);
       
       
        Cuadrado cuadrado1 = new Cuadrado(4.1);
       
        Cuadrado cuadrado2 = new Cuadrado(4.1);
       
        Cuadrado cuadrado3 = new Cuadrado(4.3);
       
       
        System.out.println("Son iguales el cuadrado1 y el cuadrado2: " + cuadrado1.equals(cuadrado2));
        System.out.println("Son el mismo objeto cuadrado1 y cuadrado2: " + (cuadrado1 == cuadrado2));
       
        System.out.println("Son iguales el cuadrado1 y el cuadrado3: " + cuadrado3.equals(cuadrado1) );
       
        System.out.println("Son iguales el circulo1 y el circulo2: " + circulo2.equals(circulo1) );
       
        System.out.println("Son iguales el circulo1 y el circulo3: " + circulo1.equals(circulo3) );
    }
}

297
Buenas, dejo aquí mi solución al ejercicio. Simple el ejercicio pero interesante lo de protected para metodos y constructores, que pueden ser nombrados como propios por las subclases o mismo package.

Clase Profesor

Código: [Seleccionar]


/**
 * Clase Profesor. Ejercicio 692
 *
 * @author Lorenzo31
 * @version 22.04.2015
 */
public class Profesor {
   
    protected String nombre;
    protected int edad;
    protected int yearsConsolidados;
   
    //Constructor
    public Profesor(String nombre, int edad, int yearsConsolidados){
        this.nombre = nombre;
        this.edad = edad;
        this.yearsConsolidados = yearsConsolidados; }
       
    //Getters
    public String getNombre(){ return nombre; }
    public int getEdad(){ return edad; }
    public int getYearsConsolidados(){ return yearsConsolidados; }
   
    //Setters
    public void setNombre(String nombre) { this.nombre = nombre; }
    public void setEdad(int edad){ this.edad = edad; }
    public void setYearsConsolidados(int yearsConsolidados){ this.yearsConsolidados = yearsConsolidados; }
   
    //Método calculo salario base
    //public double obtenerSalarioBase(){ return (725 + (yearsConsolidados * 33.25)); }
   
    //Método mostrar datos
    public String mostrarDatos(){ return ("El nombre del profesor es: " + nombre + "\n su edad es: " + edad
                                          + "\n sus años consolidados son: " + yearsConsolidados); }

}//cierre clase
       


Clase ProfesorEmerito

Código: [Seleccionar]


/**
 * clase ProfesorEmerito extiende a Profesor. Ejercicio 693
 *
 * @author Lorenzo31
 * @version 22.04.2015
 */
public class ProfesorEmerito extends Profesor {
   
    private int yearsEmerito;
   
    //Constructor
    public ProfesorEmerito(String nombre, int edad, int yearsConsolidados, int yearsEmerito){
        super(nombre, edad, yearsConsolidados);
        this.yearsEmerito = yearsEmerito; }
         
    //Setter
    public void setYearsEmerito(int yearsEmerito){ this.yearsEmerito = yearsEmerito; }
   
    //Getter
    public int getYearsEmerito(){ return yearsEmerito; }
   
    //Método sobreEscrito obtener salario base
    public double obtenerSalarioBase(){ return (925 + (yearsConsolidados * 33.25) + ( yearsEmerito * 47.80 )); }
   
    //Método mostrar datos
    public String mostrarDatos(){ return (super.mostrarDatos() + "\n los años de profesor Emérito son: " + yearsEmerito); }
   
} //cierre clase


Clase TestProtected

Código: [Seleccionar]

/**
 * Clase test ejercicio 693
 *
 * @author Lorenzo31
 * @version 22.04.2015
 */
public class TestProtected {
   
    public static void main (String [] args) {
       
        Profesor profesor1 = new Profesor("Pedro Lopez", 50, 10);
        ProfesorEmerito profesor2;
       
        profesor2 = new ProfesorEmerito("Juan Gomez", 60, 20, 6);
       
       
       
       
        System.out.println(profesor1.mostrarDatos());
       
        System.out.println(profesor2.mostrarDatos());
        System.out.println(profesor2.obtenerSalarioBase());
    }
}


Pregunta ¿Es posible sin utilizar una invocación a super ni un método get?

Respuesta

Pregunta ¿Qué ocurre si el atributo en la superclase lo declaras private?

Respuesta Dá error al compilar, indica que el acceso es private en la variable.

298
Es correcto, una cosita, no pongas acentos en las palabras

public void setDuraciónCanción(double Duracióncanción){
 
a la larga da problemas al compilar. ;)

299
Buenos días, a ver si puedo ayudarte yo.

Primero este ejercicio es teórico, solo se define un método así que olvidate de objetos de momento en este ejercicio.

Lo primero que debes determinar es si el método es una función (devuelve algo) o es un procedimiento (solamente cambia algo y no devuelve nada) que lo definiremos con un void (vacio).

Los dos que has hecho están bien. Acaba los dos siguientes, pero es teórico, no debes desarrollar el método en si solo declarar el tipo/s y variable/S que recibe y las que devolvería si lo requiere.

El motivo de que no reconozca los floats es que en los float hay que poner una f al final.
Ejemplo 1.23f sino lo toma por un double.

300
Buenas, en principio veo perfecto tu ejercicio, has hecho un main incluso que no se tenia porqué, genial.

Hay un metodo en CocinaCasa, yo le pondria getEsIndependiente() más que nada por seguir un patrón, sino , cuando tuvieras muchisimos mas métodos... sería mas complicado.

 public boolean isEsIndependiente() {
        return esIndependiente;
    }

En la clase Casa te falta el setDireccion() aunque como veo que también falta el } de final de clase... igual es un problema al pegar el código.

Páginas: 1 ... 10 11 12 13 14 [15] 16 17 18 19 20

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