Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/11/2007, 13:34
ARAPSPGON
 
Fecha de Ingreso: octubre-2007
Mensajes: 57
Antigüedad: 16 años, 6 meses
Puntos: 0
Duda principiante funcion (THIS) java

Saludos.

el tema es que he comenzado a practicar el tema de cual es la funcion de la palabra reservada This en java para el tema de las variables. y me estoy haciendo un lio con lo que dicen las definiciones y con lo que me muestran los ejemplos que voy practicando.

las definiciones me dicen principalmente que :
-la referencia this siempre apunta al objeto sobre el que se ejecuta un metodo.
-this permite especificar que la variable que señala (y la señala haciendo this.nombreVariable) es de la misma clase en la que se usa.

pues bien yo tengo este ejemplo que me he hecho para intentar comprenderlo pero me contradice la definicion:

Código:
class RGB {
  int red=1;
  int green=2;
  int blue=3;

  void RGBB(int red, int green, int blue) {//metodo
   
 this.green = green;
 this.blue = blue;
   // con (this.nombreVAr=nombreVAr hago que la referencia this 
   // que apunta a la variable 
   // de la clase  coja el valor de la variable que apunta al objeto
   // sobre el que se ejecuta el metodo
   // aunque si no lo pusiese el programa seguiria haciendo la 
   // misma funcion
   
System.out.println( "valor de rojo "+ this.red );
   // en este caso this.red hace que se apunte al valor de la variable
   // de la clase ...red=1
   
System.out.println( "valor verde "+ green );
System.out.println( "valor azul "+ blue );
   //tanto green como blue apuntan al objeto
   // sobre el que se ejecuta el metodo
  }
  
  public static void main( String args[] ) { 
      
      RGB obj = new RGB();
      
      obj.RGBB( 10,12,13 ); 
      }
}
por que me salen definiciones diciendome
la referencia this siempre apunta al objeto sobre el que se ejecuta un metodo.
si cuando aplico this.red me apunta al valor de la variable de la clase??

el resultado al compilar es :
valor de rojo 1
valor verde 12
valor azul 13

otro ejemplo que tengo es este:
Código:
class MiClase {
    
    int miVariable;  // Variable de instancia-> int MiClase.miVariable
    
   
    public MiClase() {//Constructor de la clase : MiClase.MiClase()
        miVariable = 5;
        }
    
   
    void miMetodo(int miVariable) {  // Metodo con argumentos->void MiClase.miMetodo(int miVariable)
    	
    	System.out.println( "La variable Local miVariable contiene "
            + miVariable );//int miVariable -> MiClase.miMetodo(int)
        
        System.out.println( 
            "La variable de Instancia miVariable contiene " 
            + this.miVariable );//int MiClase.miVariable
        //La palabra reservada this permite especificar que 
        //la variable que señala (y la señala haciendo this.nombreVariable) 
        //es de la misma clase en la que se usa.
        }
    
    public static void main( String args[] ) { 
        // Instanciamos un objeto del tipo de la clase
        MiClase obj = new MiClase();
        // que utilizamos para llamar a su unico metodo
        obj.miMetodo( 10 ); //void MiClase.miMetodo(int miVariable)
        }
    }
otra duda es el tema del contructor de la clase ..¿el constructor de la clase es el metodo que inicializa las varibles de la clase ?

gracias y perdonad por si mis preguntas son de risa pero me estoy haciendo un lio con todo esto. gracias de antemano