Si tenemos un ámbito de visibilidad A1 y definimos
un ámbito A2 dentro de A1, las variables definidas en A2 ocultan a las
variables homónimas de A1.
Ejemplo:
1 class C { 2 private int x; 3 public void metodo(int x) { 5 this.x = x; 6 } 7 } |
Ámbito clase: líneas 1-7. Ámbito metodo: líneas 3-6. La x del ámbito clase (declarada en la línea 2)
queda oculta por la x del ámbito método (declarada en la línea 3). El uso de THIS permite que en la línea 5
el valor de la x del método pase a la x de la clase. |
11 class C { 12 private int x1; 13 public void metodo(int x2) { 15 this.x1 = x2; 16 } 17 } |
Este bloque de código (11-17) hace exactamente
lo mismo que el bloque (1-7) pero sin problemas de visibilidad. |
20 int m; 21 for (int m= 0; m < …; m++) { 22 metodo(m); 23 } |
La m declarada en la línea 20 queda oculta por
la m declarada en la línea 21 en el ámbito del for (líneas 21-23). La m de las línea 21 y 23 se refieren a la
declaración en el ámbito más estrecho: la de la línea 21. |
Ver "ocultación | redefinición".
Temas relacionados