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:
por que me salen definiciones diciendome 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 ); } }
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:
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 ?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) } }
gracias y perdonad por si mis preguntas son de risa pero me estoy haciendo un lio con todo esto. gracias de antemano