Te explico, el enum tiene una sintaxis particular dentro del lenguaje Java, pero internamente está representado por la clase Enum:
http://download.oracle.com/javase/6/docs/api/java/lang/Enum.htmlUn ejemplo sencillo, ímaginate que necesitas controlar que un botón esté activo o inactivo y según su estado ejecutes un bloque de instrucción o otro.
Actualmente con el enum harías algo así:
enum Estado {Activo, Inactivo};
Y ya dentro de tu clase, en el método que comparara el estado podrías hacer algo así:
if(boton.getEstado() == Estado.Activo )
//blabla
Antes de la existencia del Enum tenías que crearte una clase aposta con ese conjunto de constantes estáticas:
class Estado{
static final int Activo == 1;
static final int Inactivo == 0;
}
Este es un ejemplo muy chorra, pero las enumeraciones pueden ser muy potentes, pues definirles un constructor y métodos internos.