AFF Education Construa seu Futuro

Aula 09 - Estilos Ruins para Nomear Variáveis

Estilos ruins para nomear variáveis

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.

Práticas ruins para nomear variáveis:

Formas erradas de nomear variáveis

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);
    }
}
VariaveisInvalidas.java:6: error: identifier expected int 3anos = 10; ^ VariaveisInvalidas.java:9: error: ')' expected int #idade = 25; ^ VariaveisInvalidas.java:12: error: ';' expected String nome completo = "João Silva"; ^ VariaveisInvalidas.java:15: error: not a statement int class = 10; ^ 4 errors

Nomes confusos ou errados para variáveis

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

Nomes confusos para variáveis

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

Corrigindo o código anterior

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

Incompatibilidade entre variáveis

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);
    }
}
IncompatibilidadeTipos.java:6: error: incompatible types: String cannot be converted to int int idade = "25"; ^ IncompatibilidadeTipos.java:9: error: incompatible types: possible lossy conversion from double to int int valor = 15.7; ^ IncompatibilidadeTipos.java:12: error: incompatible types: boolean cannot be converted to String String status = true; ^ 3 errors

Boas práticas para nomear variáveis

Boas práticas para nomenclatura:

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

Exercícios

Teste seus conhecimentos sobre estilos para nomear variáveis em Java:

1. Qual dos seguintes nomes de variável é válido em Java?

2. Qual das seguintes opções segue a convenção de nomenclatura correta para constantes em Java?

3. Qual é a convenção de nomenclatura recomendada para variáveis em Java?

4. Identifique a variável com nome mais adequado para representar um estado de login de usuário:

5. Identifique o código com melhor estilo de nomenclatura de variáveis:

Exercícios de Aplicação AFF Education

Reforce o conteúdo desta aula com mais dois exercícios práticos:

1. Qual destes nomes de variável segue uma boa prática (camelCase, descritivo)?

2. Por que int 2nota = 7; causa erro?