Título: Imprimir un parámetro de un método Publicado por: Aikanáro Anário en 14 Septiembre 2011, 08:21 am Esta es mi clase principal:
Código
Pero cuando se imprime la avería y el precio en averías son iguales. La clase Garaje es esta: Código
Tal vez haya hecho mucho disparates porque todavía no entiendo bien la orientación a objetos, pero ahora mismo lo que más me interesa es saber como puedo hacer que se imprima la correspondiente avería para cada uno de los carros y lo mismo con el precio de averias. Creo que si puediera imprimir el parámetro del método aceptarCoche lo podría hacer para la avería. Es una versión simplificada de esta práctica (http://docs.google.com/viewer?a=v&q=cache:f-14PJMhVh0J:programacionumg2011.files.wordpress.com/20http://docs.google.com/viewer?a=v&q=cache:f-14PJMhVh0J:programacionumg2011.files.wordpress.com/2011/04/laboratorio1.pdf+Tenga+dos+atributos+pr%C3%ADvate+de+tipo+int:+litros+de+aceite&hl=es&pid=bl&srcid=ADGEEShozfvNnIA6YJutjLoMX326BkNhzysZutgbbrk_dSmSBaOaigkvO1J7VpfKSc2Cw8D_G54sFGpBFNBInMt3UeMY6_rPN7wuAE1osayWclynpOQw-0PuvU2qIqa2ZRr68rUf9UwT&sig=AHIEtbS4jUWyc8wnTu9MpIIqDqgLbaEXEQ) Título: Re: Imprimir un parámetro de un método Publicado por: Valkyr en 14 Septiembre 2011, 12:46 pm Vamos a ir por partes para ver si consigo expresarme correctamente.
En primer lugar deberías haber colgado el método acumularAvería de la clase coche, ya que es ahí donde puede ser que tengas el problema. Por otro lado, en la clase Garaje, más concretamente en el método aceptarCoche haces esto: Código En primer lugar deberías comprobar al mismo entrar la condición de que no haya ningún coche dentro, porque si se da el caso de que hay uno dentro el método va a devolver false sí, pero has cambiado los valores de avería y nCochesAtendidos cuando eso no debería pasar ya que el coche no se va a quedar dentro. También en esa clase tienes un atributo de tipo Coche que no usas para nada. En el método Main me imagino que a la hora de imprimir por pantalla el tipo de avería te mostrará la misma, eso es por que estás mostrando la información cuando ya han pasado los dos coches. Tendrías que mostrarla en cuanto salga del garaje y antes de que entre otro coche, porque si no la información de la avería se pierde, no se si me explico correctamente. Postea el método acumularAveria y getImporteAveria y te podremos ayudar con eso. Saludos y no te preocupes, al empezar siempre cuesta un poco, pero luego la cosa sale sola ;) Título: Re: Imprimir un parámetro de un método Publicado por: Aikanáro Anário en 14 Septiembre 2011, 17:56 pm Citar En el método Main me imagino que a la hora de imprimir por pantalla el tipo de avería te mostrará la misma, eso es por que estás mostrando la información cuando ya han pasado los dos coches. Tendrías que mostrarla en cuanto salga del garaje y antes de que entre otro coche, porque si no la información de la avería se pierde, no se si me explico correctamente. Tienes razón, ese era parte del problema. La otra parte es que Código estaba dentro del if y esa sentencia debe ejecutarse tanto si la averia es aceite como si es cualquier otra. Ahora el main me quedo así: Código
Ahora está un poquito más "limpio" porque antes tenía un print en el método aceptarCoche(...) que me daba la avería. Eso fue lo que hice porque cuando accedía a getAveria salía la misma. Métodos acumularAveria y getImporteAveria Código
Título: Re: Imprimir un parámetro de un método Publicado por: Valkyr en 14 Septiembre 2011, 20:40 pm El problema está aquí:
Código
La variable de tipo Coche no la inicializas a ningún valor así que al hacer la llamada no la hace sobre el objeto que tú le pasas como parámetro a la función. ¿Cómo solucionarlo? Cuando un coche entra al garaje (después de comprobar que esté vacío) le asigna a la variable "coche" el primer parámetro de la función, es decir: Código
De esta forma podrías llamar al método acumularAvería y no necesitarías que fuese Static. Saludos, cualquier duda pregunta ;). Título: Re: Imprimir un parámetro de un método Publicado por: Aikanáro Anário en 14 Septiembre 2011, 23:16 pm Ohh, ya. Si no hubiera estado programando con un IDE (Eclipse) es seguro que el programa no me hubiera corrido o lo hubiera hecho mal.
Por que el compilador me dió la solución de que esa clase debía ser static, pero no sabía porque, simplemente apliqué la sugerencia. Título: Re: Imprimir un parámetro de un método Publicado por: Valkyr en 15 Septiembre 2011, 01:36 am Hay que saber que el IDE te recorta mucho la tarea y te ayuda muchísimas veces, pero no es una persona y no hay que fiarse de todo lo que diga. Ese error es normal, sobre todo si estás empezando a programar ahora con Java. Con un poco de práctica y equivocandote de vez en cuando seguro que consigues muy buenas cosas.
Saludos. |