1. A diferença entre enumeração e constantes estáticas
Quando se trata de enumeração, primeiro pensamos em como é diferente das constantes modificadas pela sequência final estática pública.
Vou citar duas vantagens de enumeração:
1. Garanta a segurança do tipo: o chamador não pode passar por um valor int ou string à vontade;
2. O código é muito legível;
Por exemplo:
Na programação real, geralmente existem esses "conjuntos de dados", cujos valores são estáveis no programa, e os elementos nos "conjuntos de dados" são limitados. Por exemplo, os quatro elementos de dados da primavera, verão, outono e inverno formam o "conjunto de dados" das quatro estações.
Você escreveu o método Get (temporada de string), e o tipo que você entra pode ser apenas tipo de sequência, e a string pode ser apenas (primavera, verão, outono, inverno).
Desta vez. Você escreve quatro constantes de cordas
classe pública Common {public static final string spring = "spring"; Public Static Final String Season = "Summer"; public static final string verão = "outono"; public static final string outono = "inverno";}Colocar Get (Common.Season) no método Get está realmente colocando a "primavera", mas neste momento você descobrirá que há um perigo oculto aqui. Você recebe (temporada de strings), afinal, o tipo de string é colocado. Se um novo colega ou um colega desinformado não souber que você só pode colocar "primavera, verão, outono e inverno" nesse método. Ele coloca uma string como get ("xiaoxiao"). No momento, ele não relatará um erro durante o período de compilação. Somente após a corrida, descobrirá que está errado.
Para evitar os perigos ocultos acima, a enumeração aparece
Public Enum Season {Spring ("Spring"), Summer ("Summer"), Autumn ("Autumn"), Winter ("Winter"); ....}No momento, modificamos a transferência de parâmetros do método GET e alteramos para obter (temporada de temporada). Neste momento, adicionamos get (temporada.spring), o que pode garantir que apenas alguns parâmetros sejam aprovados.
2. Entenda a enumeração
Primeiro de tudo, precisamos ficar claros. De fato, a enumeração também é uma classe. Vou escrever uma enumeração para entender.
// Tratamos as enums como uma temporada comum da temporada de engações públicas {Spring (1, "Spring"), Summer (2, "Summer"), Autumn (3, "Autumn"), Winter (4, "Winter"); // O último aqui deve ser um ponto de vírgula, caso contrário, um erro será relatado/ *Podemos entendê -lo como *Public Static final temporada primavera = nova temporada (1, primavera); *Public Static final Season Summer = Nova temporada (2, verão); *Public Static Final Season Autumn = New Season (3, outono); *Public Static Final Season Winter = New Season (4, inverno); * Como é um objeto, é fácil entender abaixo*//** 1. Existem dois parâmetros no objeto acima; portanto, deve haver um construtor desse tipo abaixo* 2. Isso é privado, porque não pode ser novo objeto*/ temporada privada (código int, nome da string) {this.name = name; this.code = code; } // atributos do nome do objeto Private String Nome; Código INT privado; // métodos para obter propriedades do objeto public string getName () {return this.name; } public string getCode () {return this.name; } // Obtenha o objeto através do código, podemos obter outras propriedades do objeto Public Static Static Season Decody (int Code) {temporada de temporada = null; para (Tipo de temporada: temporada.Values ()) {if (type.code == code) {temporada = tipo; quebrar; }} retornar temporada; } // Método re-tostrador public string tostring () {return this.name; }}O exemplo acima explica muito bem a enumeração. Não é diferente das classes comuns. Ele apenas usa outra maneira de criar vários objetos com atributos. Isso também requer esse construtor com atributos, e isso é tudo.
Aqui estão algumas das características da enumeração:
1. Ele não pode ter um construtor público, e isso pode garantir que o código do cliente não possa criar uma nova instância de enum.
2. A enumeração não pode herdar outras classes porque herda java.lang.enum por padrão.
3. O endereço de valor constante é único e você pode usar == para compará -lo diretamente, e o desempenho será aprimorado.
4. Enum também fornece o método dos valores, que permite atravessar facilmente todos os valores de enum.
5. Enum também possui um método oridinal, que retorna a ordem dos valores de enumeração na classe Enum, que depende da ordem da declaração de valor da enumeração.
3. Uso comum de enumeração
O primeiro tipo: Switch Application
Crie uma enumeração primeiro:
public Enum Common {inserir, modificar, excluir} // porque este é um objeto sem parâmetros, o construtor padrão do sistema pode ser usado. Não há necessidade de escrever atributos e métodos.Escrevendo código de implementação
classe pública CommonUtils {public static void getType (comum) {Common c = Common; switch (c) {case inser: system.out.println ("inserir operação"); quebrar; Modificação do caso: System.out.println ("Configurar operação"); quebrar; Excluir casos: System.out.println ("Excluir operação"); quebrar; }} public static void main (string [] args) {getType (Common.Delete); // Saída de fundo: Excluir operação}}O segundo uso é obter o valor do valor através do valor da chave para obter outros valores
Classe de enumeração
Public Enum Season {Spring (1, "Spring", "Spring Kite Flying in Spring"), verão (2, "verão", "Nada no verão"), outono (3, "outono", "outono em outono"), winter; String privada BZ;Classe de teste
Ok, vou escrever muito e saberei mais profundamente se precisar no futuro. Obrigado pelo seu apoio ao wulin.com.