[OCPJP6] 010 – Declarações e controle de acesso

Declaração de enums

Acreditem, enum muito mais que um conjunto fixo de valores pré-determinados 🙂

Posso dizer que é uma das minhas partes preferidas na linguagem Java. Antes do Java 1.5 utilizava-se muito constantes (static final) para pré-determinar valores, com a vinda do enum, além de deixar mais claro um valor pré-determinado muitas outras coisas legais vieram juntos.

Você sabia?

  • Em tempo de execução cada valor/constante se torna uma classe estática, sendo assim pode definir atributos, ter um construtor.
  • E mais, um enum pode implementar métodos.
  • E mais, um enum pode implementar uma interface.
  • E muito mais: sobrecarca, sobrescrita =D

Vamos ver algumas técnicas na prática

Simples

package certificacao;
public enum Situacao {
ABERTO, EM_PROCESSAMENTO, FINALIZADO, CANCELADO
}

Poderoso

package certificacao;
public interface Medida {
double getQuantidade();
}
package certificacao;
public enum TamanhoCopo implements Medida {
GRANDE(600),

MEDIO(350) {
// SOBRESCRITA de método
@Override
public boolean isReciclavel() { return false; }
},

PEQUENO("Mini Plastic");

// Atributos
private double ml = 200;
private String marca = "Generic Plastic";

// Construtores
private TamanhoCopo(double m) { this.ml = m; }
// SOBRECARGA de construtor
private TamanhoCopo(String m) { this.marca = m; }

// Métodos
public boolean isReciclavel() { return true; }
public String getMarca() { return marca; }
// Implementação de método
@Override
public double getQuantidade() { return ml; }

}

Comentem, estendam o assunto… Compartilhem =)