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

Páginas: 1 [2] 3 4 5 6 7 ... 25
21
Hola Rosalía

Tu clase está muy bien. Es operativa al 100%. Pero te voy a dar unos apuntes para tenerlos en cuenta.

1º Al poner nombre a nuestras clases, por convención (que no por obligación) le pondremos la inicial en mayúscula.
Está bien hecho que atributos y variables empiecen por minúscula, así distinguimos las clases de las variables.

2º Aunque en ejercicios anteriores os pedimos poner mensajes en los setters, no es la ocupación principal de un setter.
Resumiendo, un setter hace una cosa solamente, cambiar el valor del atributo que gestiona. Presentar mensajes, lo harán otros métodos creados para eso precisamente.

Saludos y adelante.

22
Hola Andromon

Si, parece un lío de variables.

Tu duda se solventará cuando veas que una cosa es el atributo de la clase
    numeroDepositosGrupo
y otro el parámetro que recibe el método
    GrupoDepositos (int numeroDeDepositosGrupo, String valor_idGrupo)
la diferencia está en una De de más

No son la misma variable. El código lo que hace es:
Cuando el parámetro recibido vale 2 se iguala el atributo de la clase a 2, etc.

También se podría hacer, en lugar de:
    numeroDepositosGrupo = 2;
poner
    numeroDepositosGrupo = numeroDeDepositosGrupo;

Saludos

23
Hola emma

Ejercicio correcto.

Saludos y adelante.

24
Hola Andromon

En esta línea
        conductorTaxi = new Persona(objetoPersona.getNombre());
quieres crear un nuevo objeto de tipo Persona usando un constructor que recibe un String como parámetro, cuando tu constructor de la clase Persona solo tiene un construcor que no recibe parámetro alguno.
Ahí está el error, Java no encuentra el constructor que tú invocas para crear el conductor del taxi.

O bien creas el constructor que necesitas o usas el que ya tienes.

Aparte del código, quiero pedirte que a la hora de poner el título a tus mensajes no pongas el texto en mayúsculas. Esta forma de escribir se toma como hablar a gritos.

Gracias.

25
Hola riniguez

Esto "\" es para lo siguiente:
El primer " es para empezar un texto que se encierra entre comillas dobles, creo que ya lo sabes.
Y lo siguiente \" es la forma de que en el texto aparezca el carácter de comillas dobles sin que Java lo tome como el inicio o fin de un texto entrecomillado.

Saludos

26
Hola

Tal como has observado, los objetos creados en la ventana de BlueJ se pierden al compilar.
De la misma forma que cuando un programa ya sea hecho en Java u otro lenguaje, 'pierde' los objetos creados al terminar su ejecución.
Una nueva compilación implica que el código ha cambiado y no se pueden mantener unos objetos sin el soporte del código que lo ha generado.

He de decirte que no conozco otro IDE para Java que permita crear los objetos sin tener todo el proyecto terminado, atado y bien atado.
Esta característica de BlueJ permite probar porciones de nuestro código, probar las clases de una en una, independientemente del resto de las clases.
De forma que estas pruebas nos permiten depurar deficiencias, y que después de solventarlas podemos continuar con nuestro proyecto sabiendo que lo hecho hasta ahora cumple nuestras espectativas.

Y finalmente, aunque BlueJ no 'guarda' los objetos creados, aquí va un enlace para tener un sucedáneo.

https://www.aprenderaprogramar.com/foros/index.php?topic=1595.msg8380#msg8380

Saludos

27
Hola Andromon

Es cierto, tu código utiliza menos expresiones para obtener el mismo resultado.
El código, completando el (if, else if, else ) sería:

Código: [Seleccionar]
    public void comprobarDimensiones(){
        if(diametro > 1.4)
            System.out.println("La rueda es para un vehiculo grande");
        else if(diametro > 0.8)
            System.out.println("La rueda es para un vehiculo mediano");
        else
            System.out.println("La rueda es para un vehiculo pequeño");

        // comprobando grosor
        if((diametro > 1.4 && grosor < 0.4) || (diametro <= 1.4 && diametro > 0.8 && grosor < 0.25))
            System.out.println("El grosor para esta rueda es inferior al recomendado");
    }
En cuanto a anidar los if, poder se puede, aunque tengo un pero en este caso.
La línea
    System.out.println("El grosor para esta rueda es inferior al recomendado");
se repite dos veces.

Mi opinión en el caso del if anidado, es mantener las decisiones separadas.
En el caso actual los valores del diámetro para el tamaño del coche coincide en las condiciones del grosor y la anidación funciona (aunque el mensaje por consola esté duplicado)
Es decir, si los diámetros para el cálculo en lugar de 1.4 y .8 fueran 1.2 y .75, forzosamente tendrías que descartar la anidación de los if que propones.

Saludos

28
Hola Alberto.

Si tu duda se refiere a que al invocar el método getDatosTaxiCond() la matrícula que da por respuesta no es la misma que la que introduces con el método setMatricula(...).
Tiene una respuesta lógica, no son los mismos datos, así que cada dato tiene un valor.
Para que tu método getDatosTaxiCond() dé los datos que esperas debes cambiar esta línea
Código: [Seleccionar]
        String datosTaxiCond = "El objeto TaxiCond presenta estos datos. Matricula: " + matricula1 + " Distrito:" + distrito1 + " Tipo de motor:" + cadenaTipoMotor;por esta
Código: [Seleccionar]
        String datosTaxiCond = "El objeto TaxiCond presenta estos datos. Matricula: " + vehiculoTaxi.dameMatricula() + " Distrito:" + vehiculoTaxi.dameDistrito() + " Tipo de motor:" + vehiculoTaxi.dameTipoMotor();
Quiero añadir unos apuntes para mejorar tu trabajo.
Los métodos que ha creado en la clase Taxi como:
    ingresaMatricula(...)
    dameMatricula ()
Aunque hacen su trabajo a la perfección, deberías bautizarlos como haces en las otras clases, es decir con los prefijos set y get, pues son los conocidos setters y getters que manipulan los atributos de la clase.

Y también quiero pedirte, que los enunciados de los mensajes no los pongas en mayúscula. Escribir de esa forma es tomado como hablar a gritos.

Un saludo y adelante.

29
Hola arcanFAC

Has solucionado el problema recurriendo al API de Java. Bien por tí.

He observado el comportamiento de nextInt() en tu código, y no llego a comprender el porqué de ese comportamiento.
Espero que el foro pueda ayudarte y de paso aprender yo también.

Por otro lado, veo que en la clase Main, cuando quieres leer un int, lees una línea entera y la pasas a Integer.
En la clase Ejemplo podías haber hecho lo mismo:
        datosVehiculo.setMarca(Integer.parseInt(sc.nextLine()));
La línea anterior funciona en tu código.

Saludos

30
Hola arcanFAC

Tu ejercicio presenta los datos solicitados, pero no usa iteradores como se pide en el apartado e) del enunciado.

Como ya sabes que con for each consigues el resultado. ¿Quieres probarlo con iteradores?.

Respecto al orden de salida de los elementos.
Si repasas la documentación de las clases en el API de Java, verás que en la clase HashSet dice: no se garantiza el orden de entrada de los elementos, es decir, que ni pueden estar ordenados tal como entraron ni ordenados específicamente de alguna forma (pruébalo y verás).
Y con la clase TreeSet usando su método descendingIterator() obtendrás una salida en orden descendente.

Saludos

31
Hola arcanFAC

Ejerccio perfecto
Salvo en que tu programa generas un número aleatorio entre 0 y 100.

Seguro que sabes solucionarlo

Saludos

32
Hola Alberto

Envía el resto de las clase que intervienen en tu ejercicio (tal vez: Taxi y Persona) para poder averiguar donde está el problema

Saludos

33
Hola RaGa

Ejercicio perfecto.
Muchos OK en tu ejercicio.

Clases con métodos documentados. Punto para ti.

Métodos estáticos en la clase GestionadorEntradasTeclado. Permiten usar métodos sin declarar objetos. Usar y olvidar. Punto para tí.

Solo quiero apuntar que los métodos estáticos de la clase GestionadorEntradasTeclado, no son públicos pues no has usado el modificador de acceso 'public'.
Sin esta declaración estos métodos solo son accesibles a la propia clase y a las clases del paquete al que pertenece la clase.

Saludos

34
Hola arcanFAC

Ejercicio perfecto.
Muy bien englobando métodos en la condición del while.

Saludos

35
Hola nasrry

Tu ejercicio está muy bien, salvo en una cosa.
El constructor que recibe parámetros, solo recibe dos, cuando debía recibir tantos parámetros como atributos tiene la clase.

Otra cosa es que además del constructor con parámetros para todos y cada uno de los atributos, quieras usar un constructor con solo los parámetros que son importantes para tí, y al resto le pones los valores por defecto.
Cosa que también puedes hacer. Pero primero, lo  primero. Constructor para todos los atributos.

Saludos

36
Hola rlopez

Tu ejercicio cumple las peticiones.
Declaras atributos correctamente. Pero no los inicializas a sus valores por defecto.

Los valores por defecto para los atributos son:
String a cadena vacía ""
int a cero 0
double a cero 0.0
float a cero 0.0f
boolean a false

Los getters están perfectos.
Los setters también están bien. Hacen lo solicitado, cambiar el valor del atributo y presentar el mensaje por consola.

Presentar este mensaje, no es tarea habitual de un setter. Se os ha pedido aquí para que comprobeis que Java ejecuta todo el código que hay dentro del método (incluso presentar mensajes)

Aunque has trabajado bastante para crear un  setCasado que lo controla todo. Te pongo un método con menos código
Código: [Seleccionar]
    public void setCasado (boolean valorCasado){
        System.out.println("El medico de nombre \"" + nombre + "\" ha cambiado su atributo casado de " + casado + ", a " + valorCasado);
        casado = valorCasado;
    }

Saludos

37
Hola arcanFAC

Tu ejercicio está perfecto.

Como no tengo ninguna puntualización sobre tu código, añado un comentario para mejorar si cabe:

Este mensaje en el main:

            System.out.println("Desea ingresar mas datos(si/no)");

parece indicar que se puede escoger si, o no. Cuando tu código reacciona al no de una forma y de otra ante cualquier otro texto.
Es decir que responde igual a "si" y a por ejemplo "hola que tal"
Una variación de este mensaje sería:

            System.out.println("Use cualquier texto para ingresar más datos, o (no) para terminar.");

Saludos

38
Hola arcanFAC

Ejercicio perfecto.
Con el método para mostrar los cantantes en la clase ListasCantantesFamosos (el lugar idóneo)

A destacar la economía de variables al usar la variable entrada lo mismo para introducir cantantes como para gestionar el bucle. Bien.

Saludos

39
Hola wilfrido

Primero te pongo un enlace que te muestra ¿Cómo insertar código en el foro?
https://www.aprenderaprogramar.com/foros/index.php?topic=1460.0

Respecto a tu código, supongo que envías el código para el ejercicio de la lección CU00690B (debes anotar esta referencia en tus mensajes para saber de que ejercicio estamos hablando)

Aquí tienes tu método modificado

Código: [Seleccionar]
    @Override
    public String toString(){
//         System.out.println(this.matricula + this.ruedas);
        return "Matricula: " + matricula + ". Numero de ruedas: " + ruedas;
    }

Este método se comentó en lecciones anteriores. Si tienes dudas sobre él, retoma esas lecciones.

Saludos

40
Hola Kabuto

Tal como observas tú mismo, tu código no funcicona correctamente.
Viendo como dices, las diferencias que tienes con otras soluciones aportadas, seguro que puedes modificar el código para que haga bien su trabajo.

Hay problemas que se pueden solucionar de pocas formas. 2 + 2 solo se puede hacer de una manera.
Lo importante del código es que lo entiendas, luego podrás hacer mejoras y podrás decir que esta mejora es 100% tuya, pero de momento aprovecha lo que tienes a mano.

En cuanto al constructor. Si tu clase no tiene constructor, Java lo crea automáticamente, sino no podrías crear objetos basados en esta clase.
Es decir, el hecho de que no lo crees no quiere decir que no exista. La elección es tuya.

Saludos

Páginas: 1 [2] 3 4 5 6 7 ... 25

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