Ámbito de las variables
El ámbito de una variable en Java también se refiere a la parte del programa en la que la variable es visible y puede ser utilizada, dependiendo del bloque en el que se haya definido.
Variables declaradas en el ámbito de la clase: Son variables que son declaradas fuera de cualquier bloque o método en una clase, son visibles en toda la clase y pueden ser utilizadas en cualquier método de la clase.
class Ejemplo{
int numero;
void metodo1(){
numero = 5;
}
void metodo2(){
System.out.println(numero);
}
}
En este ejemplo, la variable "numero" es declarada en el ámbito de la clase y puede ser utilizada en ambos métodos "metodo1" y "metodo2".
Variables declaradas en el ámbito de un método: Son variables que son declaradas dentro de un método, son visibles solo dentro de ese método y no pueden ser utilizadas fuera de él.
class Ejemplo{
void metodo1(){
int numero = 5;
}
void metodo2(){
System.out.println(numero); //Error, numero no esta disponible en este ámbito
}
}
En este ejemplo, la variable "numero" es declarada en el ámbito del método "metodo1" y solo esta disponible en este método, no puede ser utilizada fuera de él.
Variables declaradas en el ámbito de un bloque: Son variables que son declaradas dentro de un bloque, como un bloque if, while, for, etc. Son visibles solo dentro de ese bloque y no pueden ser utilizadas fuera de él.
class Ejemplo{
void metodo1(){
int numero = 5;
if(numero > 0){
int numero2 = 10;
}
System.out.println(numero2); //Error, numero2 no esta disponible en este ámbito
}
}
En este ejemplo, la variable "numero2" es declarada en el ámbito del bloque "if" dentro del método "metodo1" y solo esta disponible dentro de este bloque, no puede ser utilizada fuera de él.
public class Ambito {
public static void main(String[] args) {
// x está definida para todo el bloque, incluyendo subbloques
int x=0;
for(int i=0;i<10;i++) {
// i y nombre sólo están definidas dentro de este bloque
String nombre="Juan";
System.out.println(i);
System.out.println(nombre);
System.out.println(x);
}
// x existe
System.out.println(x);
// Pero i y nombre no porque se ha cerrado el bloque en el que
// estaban definidas
System.out.println(i);
System.out.println(nombre);
}
}
En resumen, el ámbito de una variable en java depende del bloque en el que se haya definido, las variables declaradas en el ámbito de la clase son visibles en toda la clase, las variables declaradas en el ámbito de un método son visibles solo dentro de ese método y las variables declaradas en el bloque solo son visibles dentro del bloque.
https://www.tutorialspoint.com/java/java_methods.htm