Can an enum have methods, fields and constructors? How? Why?