Convenções Para Classes e Objetos

As regras aqui listadas não vão fazer o seu programa funcionar melhor.

Mas estas convenções são importantes para que seu programa seja melhor entendido pelos seus colegas e pela comunidade.
E isto sim, vai evitar que seu programa tenha erros no futuro, seja fácil de manter e corrigir erros, e seja fácil para inserir novas funcionalidades.

Você precisa saber: estas regras serão avaliadas nas provas e nos trabalhos (e na sua carreira profissional).

Tipos Primitivos

Os tipos primitivos que usaremos serão:

Em nenhuma parte do curso você precisará usar long ou unsigned.

Quando falarmos de collections vamos precisar usar Wrappers dos tipos primitivos: Integer, Double, Boolean e Character. Usaremos Wrappers apenas quando precisarmos usar.

Nomes de Classes e Variáveis

Nomes devem ser mnemônicos. Os nomes devem nos ajudar a lembrar do que está guardado naquela variável, ou o significado daquela classe.
Por exemplo,

Regras para Nomes

Ordem de Campos, Constructors e Métodos

Convenção de Encapsulamento

Todo atributo da sua classe deve ser inicializado no contructor. Mesmo que seja por um valor padrão não recebido nos argumentos.

Todo atributo da sua classe deve ser private. As variáveis que você quer que o usuário da sua classe tenha acesso deve ter métodos públicos get e/ou um set.
Por exemplo, se você acha que faz sentido que o usuário mude alguma variável do tipo String chamada variavelDoExemplo, esta classe deve ter o método

public void setVariavelDoExemplo(String aVariavelDoExemplo){
  this.variavelDoExemplo = aVariavelDoExemplo;
}

Se você acha que faz sentido que o usuário tenha acesso ao valor de alguma variável do tipo String chamada variavelDoExemplo, esta classe deve ter o método

public String getVariavelDoExemplo(){
  return this.variavelDoExemplo;
}

Exemplo

// Nome da classe começa com letra maiúscula e têm o estilo CamelCase
class ExemploDeConvencoes {

    // Atributos que são constantes devem ser escritos com letra maiúscula
    public static final double ATRIBUTO_CONSTANTE = 3.14159;

    // Campos de variáveis começam com letra minúscula e têm o estilo CamelCase
    private String variavelDoExemplo;
    private int numeroDoExemplo;
    private double pesoDoExemplo;

    public ExemploDeConvencoes(String aVariavelDoExemplo, int aNumeroDoExemplo){
      this.variavelDoExemplo = aVariavelDoExemplo;
      this.numeroDoExemplo = aNumeroDoExemplo;
      this.pesoDoExemplo = 0;
    }

    public String getVariavelDoExemplo(){
        return this.variavelDoExemplo;
    }

    public void setVariavelDoExemplo(String aVariavelDoExemplo){
        this.variavelDoExemplo = aVariavelDoExemplo;
    }

    public int getNumeroDoExemplo(){
        return this.numeroDoExemplo;
    }

    public void setPesoDoExemplo(double aPesoDoExemplo){
        this.pesoDoExemplo = aPesoDoExemplo;
    }

    // Métodos começam com letra minúscula e têm o estilo CamelCase
    public void metodoDoExemplo(){
    }

}