Enums

 

Exemplo 1 – Alguns métodos comuns a enums)

 

public class Teste {

// repare que o Enum foi declarado como um membro de instância da classe. Não há a palavra Static. Porém é utilizado de maneira estática no psvm abaixo.

// CONCLUSÃO: Quando o enum é membro de uma classe ele é implicitamente estático !!!

private enum Familia {PEDRO, JULIANE, HENRIQUE, LORENA};

public static void main(String[] args) {

// Um enum não pode ser declarado dentro de um método.

for(Familia membro: Familia.values()) System.out.print(membro.name() + “[ordinal:” + membro.ordinal() + “], “);

 

System.out.println();

 

Familia membro= Familia.valueOf(“LORENA”);

System.out.print(membro.name() + “[ordinal:” + membro.ordinal() + “], “);

}

}

Output:

PEDRO[ordinal:0], JULIANE[ordinal:1], HENRIQUE[ordinal:2], LORENA[ordinal:3],

LORENA[ordinal:3],

 

Métodos importantes:

name() retorna o nome do membro do enum como uma String
ordinal() retorna a posição em que foi declarado ‘int’ iniciando em ‘0’
values() retorna uma arraycom todas as constantes da enumeração.
valueOf(String) recebe o nome de uma constante e devolve a constante correspondente. (Estático)

 

 

 

Remember few things about enum

1.) enums are implicitly final subclasses of java.lang.Enum

2.) if an enum is a member of a class, it is implicitly static

3.) new can never be used with an enum, even within the enum type itself

4.) name and valueOf simply use the text of the enum constants, while toString may be overridden to provide any content, if desired

5.) for enum constants, equals and == amount to the same thing, and can be used interchangeably

enum constants are implicitly public static final

the order of appearance of enum constants is called their “natural order”, and defines the order used by other items as well : compareTo, iteration order of values , EnumSet, EnumSet.range.

 

Colado de <http://www.coderanch.com/t/502413/java-programmer-SCJP/certification/Declaring-Enums-class#2266128>

 

 

Exemplo 2 – Demonstrando a construção das constantes)

 

public class Teste {

private enum Familia {

PEDRO, JULIANE, HENRIQUE, LORENA;

Familia(){

System.out.println(“I love my family! Construindo: ” + this.name());

}

};

public static void main(String[] args) {

Familia f = Familia.HENRIQUE;

}

}

Output:

I love my family! Construindo: PEDRO

I love my family! Construindo: JULIANE

I love my family! Construindo: HENRIQUE

I love my family! Construindo: LORENA

 

Exemplo 3 – Demonstrando enums com construtores)

 

public class Teste {

private enum Familia {

PEDRO(10), JULIANE(10), HENRIQUE(3), LORENA(1);

private int responsabilidade;

// construtor de enum não podem ter modificador de acesso {public / protected / private}.

Familia(int responsabilidade) {

this.responsabilidade = responsabilidade;

}

public int getResponsabilidade(){

return this.responsabilidade;

}

};

 

public static void main(String[] args) {

Familia f = Familia.HENRIQUE;

System.out.println(f.getResponsabilidade());

System.out.println(Familia.LORENA.getResponsabilidade());

}

}

Output:

3

1

 

 

Esta entrada foi publicada em Java com as etiquetas . ligação permanente.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s