Uma variável é um recurso das linguagens de programação utilizado para armazenar valores em memória. Assim, sempre que precisarmos desse valor, basta referenciarmos essa variável. Em Java, podemos declarar variáveis, variáveis finais e constantes. As variáveis podem ter seu valor modificado a qualquer momento, enquanto as variáveis finais e constantes recebem um valor e não podem ser alteradas.

Neste documento será apresentado como declarar e utilizar variáveis, variáveis finais e constantes.

Variáveis

Na linguagem Java, declaramos uma variável informando o tipo de dados que ela poderá receber e seu nome.

Exemplos de declaração de variáveis:


      int numero;
      String nome;
      

Neste código informamos que a variável numero é do tipo inteiro e, por isso, só poderá receber valores desse tipo. O mesmo comportamento é válido para a variável nome do tipo String.

Nota: Como a linguagem Java é fortemente tipada, a declaração do tipo é obrigatória.

O tipo de dado pode ser qualquer um dos tipos primitivos (como int, float, boolean), assim como qualquer outra classe/interface, seja ela nativa do Java (como String, ArrayList) ou criada por você ou por terceiros (como Produto, ProdutoDAO).

Veja exemplos de declaração de variáveis dentro do método main:

package br.com.devmedia;

public class Main {
    public static void main(String[] args) {
        int numero = 20;
        String nome = "Silvana";
    
        System.out.println(numero); // vai imprimir "20"
        System.out.println(nome);// vai imprimir "Silvana"
    }
}

Nomeação de variáveis

A nomeação de variáveis precisa ser feita respeitando algumas regras e convenções:

  1. Pode conter letras, números e o caractere sublinhado (_), mas não pode começar com um número;
  2. Devem ser declaradas em minúsculo. Caso sejam nomes compostos, a primeira letra de todas as palavras, menos da primeira, deve ser maiúscula (Camel Case);
  3. Java é uma linguagem case sensitive. Assim, numeroUm é diferente de numeroum.

Exemplos de declaração de variáveis:


      int nome123;
      float _salarioBase;
      String 1erro; // Erro de compilação por iniciar com caractere numérico.

Variáveis de classe

Ao declarar uma variável dentro de uma classe, antes do tipo também podemos especificar o modificador de acesso.

Exemplo de declaração de variável:


      class Funcionario {

          private int matricula;
          private String nome;

      }

A palavra private é um modificador de acesso. Em Java, também temos as opções public e protected. Não se preocupe com os modificadores de acesso neste momento, eles serão abordados mais a frente quando falarmos sobre orientação a objetos.

No Java quando precisamos lidar com dados que não devem ser alterados durante a execução do programa criamos variáveis finais ou constantes. Veja a seguir como uma variável final e uma constante são criadas.

Variáveis finais

Como vimos, uma variável final é declarada quando precisamos lidar com dados que não devem ser alterados durante a execução do programa. No Java declaramos uma variável final utilizando a palavra-chave final antes do tipo da variável. Veja abaixo um exemplo de declaração de uma variável final dentro do método main:


        package br.com.devmedia;

        public class Main {
            public static void main(String[] args) {
                final String msgPadrao = "Olá!";
            }
        }
        

A variável final msgPadrao recebeu o valor "Olá!" e não pode ser alterado.

Uma observação quanto a criação de uma variável final, é que o seu valor não precisa ser atribuído no momento da sua criação. Podemos primeiro criar a variável final e atribuir o seu valor posteriomente. Veja um exemplo abaixo:


        package br.com.devmedia;

        public class Main {
            public static void main(String[] args) {
              final String msgPadrao;
              msgPadrao = "Olá!";
            }
        }
      

Mas cuidado, lembre-se de que só podemos atribuir o valor a uma variável final uma única vez. Do contrário o compilador vai gerar erro.

Veja outros exemplos de declaração de variáveis finais:


    package br.com.devmedia;
    
    class Main {
        public static void main(String[] args) {
            final String nomePagina = "home";
            final double e = 1.234e2; 
            
            System.out.println(nomePagina); // vai imprimir "home"
            System.out.println(e);// vai imprimir "1.234e2"
        }
    }

Constantes

As constantes são melhor entendidas junto com o conceito de orientação a objetos e classes, porém vamos apresentar a sua definição mas não se preocupe, pois elas serão melhor abordadas mais a frente.

Assim como uma variável final, uma constante é declarada quando precisamos lidar com dados que não devem ser alterados durante a execução do programa. No Java declaramos uma constante utilizando as palavras-chave static final antes do tipo da variável. Veja abaixo um exemplo de declaração de uma constante:


        package br.com.devmedia;

        public class Main {
            public static final float PI = 3.1416F;  
            
            public static void main(String[] args) {
              System.out.println(PI);
            }
        }
        

Uma observação é que uma constante é criada na classe, ou seja, fora do método. Por esse motivo utilizamos o modificador de acesso 'public' (linha 4) que veremos mais a frente quando estudarmos sobre classes.

Diferente de uma variável final, uma constante precisa receber o seu valor no momento em que ela for declarada.

Por convenção, usamos letras maiúsculas para declarar constantes e assim distingui-las das variáveis.

Nota: Constantes são indicadas para substituir “números/valores mágicos”, isto é, aqueles números que aparecem no meio do código criado para realizar algum cálculo, agregando mais significado e facilitando a compreensão.

Exemplo prático

Para demonstrar mais alguns exemplos de como declarar variáveis em Java, observe as possibilidades a seguir.

Exemplo de uso de variáveis dentro do método main:


    package br.com.devmedia;
    
    public class Main {
        public static void main(String[] args) {
            final float pi = 3.146f;
            final double e;
            
            e = 1.234e2;
            
            String nome = "Estevao Dias";
            String dataAniversario = "23/05/2000";
            int lote = 35456;
            boolean aprovado;
            
            aprovado = true;
    
            System.out.println(pi); // vai imprimir "3.146f"
            System.out.println(e);// vai imprimir "1.234e2"
            System.out.println(nome);// vai imprimir "Estevao Dias"
            System.out.println(dataAniversario);// vai imprimir "23/05/2000"
            System.out.println(lote);// vai imprimir "35456"
            System.out.println(aprovado);// vai imprimir "true"
        }
    }