A escolha de nomes para variáveis é uma parte importante da programação. Usar nomes claros e significativos torna o código mais legível e fácil de manter. Vamos conhecer algumas práticas que devem ser evitadas ao nomear variáveis em Java.
public class VariaveisInvalidas {
public static void main(String[] args) {
// Exemplos de nomes de variáveis inválidos (causam erro de compilação)
// Erro: variável começando com número
int 3anos = 10;
// Erro: variável começando com símbolo
int #idade = 25;
// Erro: variável usando espaço
String nome completo = "João Silva";
// Erro: variável usando palavra reservada
int class = 10;
System.out.println("Idade: " + 3anos);
}
}
Além dos nomes inválidos que causam erros de compilação, também devemos evitar nomes que, embora sejam tecnicamente válidos, são confusos ou não representam bem o que a variável armazena.
public class NomesConfusos {
public static void main(String[] args) {
// Nomes tecnicamente válidos, mas confusos ou inadequados
// Nome muito curto, sem significado claro
int a = 30;
// Nome não representa corretamente o valor armazenado
String nome = "25";
// Nome muito genérico
int valor = 1000;
// Nome não segue a convenção camelCase
int Idade_da_pessoa = 45;
System.out.println("Variável a: " + a);
System.out.println("Nome: " + nome);
System.out.println("Valor: " + valor);
System.out.println("Idade: " + Idade_da_pessoa);
}
}
Variável a: 30
Nome: 25
Valor: 1000
Idade: 45
Outra situação problemática é quando misturamos tipos de dados com nomes que sugerem outro tipo, o que pode causar confusão para quem lê o código.
public class ConfusaoTipos {
public static void main(String[] args) {
// Variáveis com nomes que sugerem um tipo diferente do que realmente são
// Confuso: nome sugere booleano, mas é string
String isAtivo = "sim";
// Confuso: nome sugere inteiro, mas é string
String numero = "123abc";
// Confuso: nome sugere string, mas é inteiro
int textoQualquer = 42;
// Confuso: nome não segue convenção de nomes para constantes
final double pi = 3.14159;
System.out.println("isAtivo: " + isAtivo);
System.out.println("numero: " + numero);
System.out.println("textoQualquer: " + textoQualquer);
System.out.println("pi: " + pi);
}
}
isAtivo: sim
numero: 123abc
textoQualquer: 42
pi: 3.14159
Vejamos como podemos melhorar a nomenclatura das variáveis para tornar o código mais claro e legível:
public class NomesMelhorados {
public static void main(String[] args) {
// Nomes de variáveis melhorados
// Nome descritivo para a idade
int idade = 30;
// Nome e tipo adequados
String nomeCompleto = "João Silva";
// Nome específico que indica o que o valor representa
int salario = 1000;
// Seguindo a convenção camelCase
int idadeDaPessoa = 45;
// Usando booleano para valor lógico
boolean estaAtivo = true;
// Nome que indica que é uma string numérica
String numeroComoTexto = "123abc";
// Nome mais apropriado para um valor numérico
int codigo = 42;
// Seguindo convenção para constantes (letras maiúsculas e underscores)
final double PI = 3.14159;
System.out.println("Idade: " + idade);
System.out.println("Nome completo: " + nomeCompleto);
System.out.println("Salário: " + salario);
System.out.println("Idade da pessoa: " + idadeDaPessoa);
System.out.println("Está ativo: " + estaAtivo);
System.out.println("Número como texto: " + numeroComoTexto);
System.out.println("Código: " + codigo);
System.out.println("PI: " + PI);
}
}
Idade: 30
Nome completo: João Silva
Salário: 1000
Idade da pessoa: 45
Está ativo: true
Número como texto: 123abc
Código: 42
PI: 3.14159
Outro problema comum é tentar atribuir um valor de um tipo para uma variável de outro tipo incompatível:
public class IncompatibilidadeTipos {
public static void main(String[] args) {
// Incompatibilidade de tipos - causará erro de compilação
// Erro: tentando atribuir string a int
int idade = "25";
// Erro: tentando atribuir double a int sem casting
int valor = 15.7;
// Erro: tentando atribuir boolean a String
String status = true;
System.out.println("Idade: " + idade);
}
}
| Má Prática | Boa Prática | Explicação |
|---|---|---|
| int a = 30; | int idade = 30; | Nome descritivo indica o propósito da variável |
| boolean x = true; | boolean estaAtivo = true; | Nome booleano com prefixo "esta" indica um estado |
| double pi = 3.14159; | final double PI = 3.14159; | Constantes usam letras maiúsculas e final |
| String fn = "João"; | String firstName = "João"; | Evitar abreviações ambíguas |
| String Endereco = "Rua A"; | String endereco = "Rua A"; | Variáveis começam com letra minúscula |
Teste seus conhecimentos sobre estilos para nomear variáveis em Java:
Reforce o conteúdo desta aula com mais dois exercícios práticos: