Declarando Variáveis Locais
Em Java, existem muitos lugares para declarar variáveis. Você pode declará-los no início do programa, dentro do método principal, dentro das classes e dentro dos métodos ou funções. Dependendo de onde são definidos, outras partes do seu código podem ou não acessá-los.
Uma variável local é aquela que é declarada dentro de um método. Não pode ser usado fora desse método. É como um vale-presente para uma loja específica. Só funciona dentro daquela loja.
Digamos que temos uma classe para um sistema planetário. Dentro dessa classe, existe um método para calcular a distância em quilômetros.
public class PlanetarySystem {
public double calcDistance (double parsecs) {
// variável local km
double km = parsecs * 30856775813057.62;
km de retorno;
}
}
Embora esse método retorne o valor para quem chama o método, você não pode acessá-lo de nenhum outro método.
O código a seguir envia ao método calcDistance um valor parsec.
public static void main (String [] args) {
double parsecs;
PlanetarySystem coruscant = new PlanetarySystem ();
System.out.println ("Digite parsecs:");
Scanner enterkm = novo Scanner (System.in);
parsecs = enterkm.nextDouble ();
System.out.println ("KM total para Coruscant =" + coruscant.calcDistance (parsecs));
}
E a saída:
Embora tenhamos conseguido ver o valor da variável km, não conseguimos acessá-lo na função principal. Se a classe PlanetarySystem tivesse outros métodos, NENHUM deles seria capaz de acessar a variável km dentro do método calcDistance.
No entanto, você pode criar uma dúzia de variáveis locais, em uma dúzia de métodos diferentes, cada um com o mesmo nome e tipo de dados. Está confuso? Sim, mas pense em variáveis simples, como i . Usamos i em contadores e loops, provavelmente não há problema em usá-lo continuamente. Além disso, por tê-lo como uma variável local, o contador permanece isolado dentro desse método!
Se você criou uma variável global i e a usou em todos os laços for, haverá casos em que a variável não terá o valor que você espera. Isso pode causar sérios problemas em seu código, criando loops infinitos, travando o programa ou atualizando as informações erradas. Se você espera que o código atualize o funcionário nº 729 com uma taxa de pagamento de $ 150 / hora, mas na verdade está no funcionário nº 17, isso seria um erro muito caro.
Reduzindo o escopo das variáveis locais
Se falamos sobre a redução do escopo da variável local, você pode rapidamente apontar que as variáveis locais já têm escopo limitado!
Isso é verdade, mas outras linguagens de programação exigem que até mesmo as variáveis locais sejam declaradas no início do método ou função. Isso não é necessário em Java. Na verdade, pode tornar as coisas mais confusas!
O código a seguir mostra como isso pode sair do controle. Se houver linhas de código após a declaração da variável, os leitores do programa podem ficar confusos com a profundidade da variável! Definimos um valor? Foi 0? De onde veio?
public class MoonCraters extends Moons {
int i, j, k, m, n;
double decayRate;
profundidade dupla;
public double getDepth (double depth) {
if (depth == 3578) {
// codificar aqui
}
return depth;
}
}
Em vez disso, declaramos nossas variáveis à medida que as usamos. Em nossos métodos, empregamos essa prática. Mesmo para loops, você pode declarar a variável à medida que a usa:
para (int i = 0; i <crater.count; i ++) {
// código
}
Resumo da lição
Uma variável local é específica para um determinado método e não pode ser acessada fora desse método. O método pode retornar o valor da variável se solicitado, mas o código fora desse método (mesmo se estiver na mesma classe) não pode chegar ao método.