- Ámbito (programación)
-
En programación de computadoras, el ámbito es el contexto que tiene una expresión o un nombre dentro de un programa. El ámbito determina en qué partes del programa una entidad puede ser usada.
Esto sirve para que se pueda volver a definir una variable con un mismo nombre en otra parte del programa ya que nombres como: "i","x","y" por ejemplo son muy usados y con frecuencia se necesita repetirlos dentro de un mismo programa, porque si no se acabarían los nombres cortos y habría que utilizar nombre largos para variables que no requieren de una gran semántica, como el índice de un arreglo.
Si una variable es declarada dentro de un bloque esta se destruirá al terminar el bloque, esto quiere decir que si se declara dentro de un método/función/procedimiento al finalizar dicho subprograma esta variable no existe mas, también se da dentro de bloques como los for por ejemplo, en este caso la variable se llama local y solo tiene alcance dentro del bloque que se creo y sus hijos, pero no bloques hermanos ni padres, si una variable se define fuera de cualquier bloque (en el caso de POO dentro de una clase) esta variable se llama de alcance global y cualquier bloque puede acceder a ella y modificarla.
Hay dos tipos de alcances, el estático que también es llamado lexicográfico, donde el alcance se determina en tiempo de compilación, mientras que las variables de alcance dinámico se verificara en el hilo de ejecución.
Ejemplo en Java
public class A { public Integer numeroEntero = new Integer(); /* Variable Global a todos los Métodos */ public Integer metodo() { int num = 1; // Variable Local a metodo. Puede accederse dentro de este método en cualquier parte, pero no fuera del mismo. for (int i = 0;i<numeroEntero.intValue();i++) { // i es local al bucle for, sólo puede ser accedida dentro del mismo. num *= i; } // i = 2; Esta línea provocaría error al no haber declarado la variable i. i fue definida localmente al bucle for. return Integer.valueOf(num); } public void otroMetodo() { int num = 1; // Variable local a otroMetodo. num aquí es una variable distinta a la variable num de metodo System.out.println("Variable local num: " + num); } }
Enlaces externos
Wikimedia foundation. 2010.