Foros del Web » Programación para mayores de 30 ;) » Java »

Declarar una variable otra vez??

Estas en el tema de Declarar una variable otra vez?? en el foro de Java en Foros del Web. Hola a todos en el foro, realmente que soy nuevo en Java, pero tengo experiencia, en C/C++, PHP. tengo una pregunta, pues no se porque ...
  #1 (permalink)  
Antiguo 31/08/2004, 10:02
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
Declarar una variable otra vez??

Hola a todos en el foro, realmente que soy nuevo en Java, pero tengo experiencia, en C/C++, PHP.

tengo una pregunta, pues no se porque sucede esto, esto es un simple applet que solo imprime un mensage en un ciclo for 11 veces, ademas suma dos numeros y los imprime:
Código PHP:
             import java.applet.*;
    
import java.awt.*;
 
    public class 
primer extends Applet {
        public 
void paint(Graphics g) {
           
int oper;
               for(
int contador=0;contador<=10;contador++){
            
g.drawString("- "+contador+"  Jaladas"50,30+contador*10);
        
oper=contador*3;
        
g.drawString("= "+oper,5,30+contador*10);
           }
           
int contador=0;  //Porque??
           
while(contador<10){
        
g.drawString(".",10,10+contador);
        
contador++;
           }
                   
            }
    } 
Mi pregunta es, porque tengo que reedeclarar contador despues que salio del ciclo, pues si no lo declaro otra vez, me marca error al compilar, por que hay que declararlo otra vez, no entiendo.
  #2 (permalink)  
Antiguo 31/08/2004, 22:35
Avatar de goncafa  
Fecha de Ingreso: julio-2002
Ubicación: Santiago
Mensajes: 1.211
Antigüedad: 21 años, 10 meses
Puntos: 10
Veras, tu que tienes experiencia en C/C++ sabras que en ese lenguage exiten los destructores, que son usados para ir liverando memoria destruyendo objetos o variables que ya no vayan a ser utilizadas, pues bien, eso en Java ya no existe, pues Java tiene su propio recolector de basura que lo hace por ti, ahorrandote el arduo y duro trabajo de tener que lidiar con lo que es la mamoria de tu aplicacion... y es precisamente una de las formas que Java tiene de saber cuando algo debe ser destruido, cuando ya salio de ambito, y esto es mediante uso de llaves "{, }" por ejemplo

Código PHP:
{
     
int num 0//declaramos num

//aqui num ya no existe pues cerramos la llave de su ambito

int num 7//declaramos otra variable que se llama igual, pero no es la misma 
es por esto que si declaras alguna avriable en el for esta despues se sale de ambito al terminar el ciclo y se destrulle, para evitar esto debes hacer esto

Código PHP:
{
    
int contador;

    for(
contador 0contador 11contador++) {
          
//aqui tu codigo...
    
}

    
//esta vez aqui no se destruye contador, pues su ambito aun
    //no ha terminado

    //puedes hacer todo lo que quieras aun con tu variable por aqui...

//aqui se destruye cualquier objeto o variable que allas declarado
  //dentro de estas llaves, incluyendo contador 
Espero haber aclarado tu duda

Saludos
__________________
se despide hasta la proxima
Gonzalo Castillo
  #3 (permalink)  
Antiguo 01/09/2004, 09:55
Avatar de stock  
Fecha de Ingreso: junio-2004
Ubicación: Monterrey NL
Mensajes: 2.390
Antigüedad: 19 años, 10 meses
Puntos: 53
Gracias, por la amplia explicacion, la verdad es que es muy buena, anduve leyendo despues de que hice esta pregunta, yencontre que java usa el termino de Variables Locales, y es precisamente eso que me acabas de explicar.

Thanks.

PD, por aqui nos veremos, pues apenas ando comenzando...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:41.