Java - Duda ejercicio Java variables static

   
Vista:

Duda ejercicio Java variables static

Publicado por java_beginner (2 intervenciones) el 10/11/2014 12:42:18
Hola, os escribo porque hay dos ejercicios de java que no entiendo y como estoy aprendiendo por mi cuenta no tengo quién me los explique:


1
2
3
4
5
6
7
8
9
10
class Prueba {
static int x = 5
public static int f() {
     x = 0
     return x;
}
public static void main (String [] args {
  System.out.println("Resultado = " + f() + "," + (++x));
}
}


Resultado = 0,1


1
2
3
4
5
6
7
8
9
10
class Prueba {
static int x = 5
public static int f (int x) {
     x = 0
     return x;
}
public static void main (String [] args {
  System.out.println("Resultado = " + f(x) + "," + ++x);
}
}


Y aquí imprime:
Resultado = 0, 6


¿Alguien me puede explicar porqué?
Muchísimas gracias de antemano, saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Duda ejercicio Java variables static

Publicado por Alfonso (6 intervenciones) el 11/11/2014 01:07:51
Es debido a los ámbitos de la variable x.

En el primer ejemplo, x es global, por lo que al principio, se le asigna el valor 5 a la x, después, cuando ejecutas la función f(), machacas el valor de 5 y ahora x vale 0. Cuando imprimes, el valor de f() es igual a 0 y al ejecutar ++x, le sumas 1 a x y por eso imprime 0,1 = f(),x

En el segundo ejemplo hay dos variables con el mismo nombre. Una variable global x, que llamaremos para diferenciala Xg y una variable local que es el parámetro de f(x), que llamaremos Xl.

Al principio x = 5 (nos estamos refiriendo a la Xg=5)
Después ejecutamos f(x). Por lo que x=0 (nos referimos a la Xl=0, por lo que Xg, sigue valiendo 5

Al imprimir f(x), ++x estamos imprimiendo el valor de f(x) que es 0 y el valor Xg que es 5+1=6.
Resultado 0,6

Espero haberme explicado.

Un saludo,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Duda ejercicio Java variables static

Publicado por java_beginner (2 intervenciones) el 11/11/2014 18:12:48
Te has explicado muy bien, está entendido, muchas gracias Alfonso!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar