Título: Duda ejercicio java variable static Publicado por: beginner6 en 10 Noviembre 2014, 22:56 pm Hola, me he encontrado este ejercicio que no entiendo, en el libro vienen las soluciones pero no la explicación, y como estoy aprendiendo por mi cuenta no tengo quien me lo explique:
Código: class Prueba { Resultado = 0,1 Código: class Prueba { Y aquí imprime: Resultado = 0, 6 Veo que en el segundo la función f toma x como parámetro, pero no entiendo porqué eso hace que x vuelva a valer 5 si el último valor que se le había dado era 0. ¿Alguien me lo podría explicar? De antemano muchas gracias y saludos!! Título: Re: Duda ejercicio java variable static Publicado por: JonaLamper en 10 Noviembre 2014, 23:31 pm Sí, pero cuando estás haciendo el System.out.println(f(x)); estás haciendo referencia a tu x del método, y según tu método, esa x retorna el valor que tiene (que es 0, pues se lo has asignado dentro del método). Pero cuando haces System.out.println(x); estás haciendo referencia a tu atributo estático que vale 5.
Quizá con nombres distintos lo veas mejor, mira: Código
Título: Re: Duda ejercicio java variable static Publicado por: someRandomCode en 10 Noviembre 2014, 23:32 pm Exactamente como te han dicho, solo aportar que para acceder a la x estatica tendrias que usar this->x, dado que de otra forma el x de la funcion tiene precedencia
Título: Re: Duda ejercicio java variable static Publicado por: beginner6 en 11 Noviembre 2014, 00:15 am Pero cuando haces System.out.println(x); estás haciendo referencia a tu atributo estático que vale 5. Entendido, ¿y por qué no hace lo mismo el código de arriba?En el primer código, no sé si es que imprime la x del método, o imprime la static que ha cambiado de valor (y si fuera así no entiendo porqué en el primero cambia de valor y en el segundo hay "otra" x independiente), según leí las variables estáticas solo pueden tener un valor, no es como las otras que se pasa una copia a cada método... Pero qué distinto es estudiar la teoría y luego ver la práctica... Muchísimas gracias por vuestro tiempo y respuestas :) Título: Re: Duda ejercicio java variable static Publicado por: JonaLamper en 11 Noviembre 2014, 09:01 am Porque en el primer código solo existe una x, la del static (que su valor es 5). Entonces esa x entra en el método y la modificas poniéndola a 0. Y en el segundo código tienes dos x. La primera es la del static y la segunda es el parámetro que recibe tu método.
Por eso no es buena idea poner los mismos nombres a los atributos que a las variables. Y como creo que se lo que vas a preguntar ahora, te lo responderé. El segundo código hace lo siguiente (en mi código): 1.- c = 5 (estático). 2.- Al imprimir System.out.println(f(c)); el método recibe un 5 como parámetro de entrada, que se lo copia a la variable x. 3.- la variable x la pones a 0. Y ese es el valor que te muestra (pero el atributo estático c no ha cambiado su valor!) Título: Re: Duda ejercicio java variable static Publicado por: beginner6 en 11 Noviembre 2014, 18:09 pm Por eso no es buena idea poner los mismos nombres a los atributos que a las variables. Ya ves, lo han puesto así para pillar jeje :laugh:Ahora sí está entendido, gracias mil!! |