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"
    }
}