problema con variables creadas en funciones

Iniciado por 4dr14n31t0r, 18 Noviembre 2015, 23:34 PM

0 Miembros y 1 Visitante están viendo este tema.

4dr14n31t0r

Si yo creo una funcion recursiva con, por poner un ejemplo, una variable "var" de tipo int que incremente su valor una unidad cada vez que se accede a la misma funcion dentro de si misma, como podria acceder a su valor?
Código (java) [Seleccionar]
boolean darPrimerValor = true;//Esto solo es para darle a "var" el valor 0 una sola vez

void funcion(){
   if(darPrimerValor == true){
      int var = 0;
      darPrimerValor = false;
   }
   if(var < 10){
      var++;
      funcion();
   };
}

Cada vez que se ejecuta la funcion dentro de si misma crearia una nueva variable "var" con el mismo nombre, no? entonces como puedo obtener el valor de la variable de la funcion que la llama?
Es lo mismo que si uno de los parametros de la funcion tuviera el mismo nombre que un atributo de la clase en la que se instancia, solo que para eso se usa el puntero "this" y para el problema que propongo no.

DvNe

Tu problema esta en que los parámetros en Java se pasan por valor, es decir el parámetro que recibe la función es una copia del parámetro real y los cambios que se efectúan dentro de la función no afectan al parámetro real.

Hay lenguajes de programación que permiten el paso de parámetros por referencia, aquí los cambios que se realicen sobre el parámetro se verán reflejados en el parámetro real.

Una forma de eludir un poco esta restricción de Java se presenta en esta web, échale un vistazo a ver si te ayuda.

http://lineadecodigo.com/java/parametros-por-referencia-en-java/

furciorifa

La variable var declarala como final y listo.