Negocio

Variáveis ​​locais em Java: declaração e exemplos

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:

Saída var local da chamada Java

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.