Foro de elhacker.net

Programación => Java => Mensaje iniciado por: 4dr14n31t0r en 18 Noviembre 2015, 23:34 pm



Título: problema con variables creadas en funciones
Publicado por: 4dr14n31t0r en 18 Noviembre 2015, 23:34 pm
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
  1. boolean darPrimerValor = true;//Esto solo es para darle a "var" el valor 0 una sola vez
  2.  
  3. void funcion(){
  4.   if(darPrimerValor == true){
  5.      int var = 0;
  6.      darPrimerValor = false;
  7.   }
  8.   if(var < 10){
  9.      var++;
  10.      funcion();
  11.   };
  12. }
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.


Título: Re: problema con variables creadas en funciones
Publicado por: DvNe en 19 Noviembre 2015, 01:43 am
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/


Título: Re: problema con variables creadas en funciones
Publicado por: furciorifa en 19 Noviembre 2015, 02:20 am
La variable var declarala como final y listo.