[JAVA] Qu'est-ce que Fat⁉ enum?

Domo est Fugito.

Récemment, chaque jour, je fais progresser l'apprentissage orienté objet. Au fur et à mesure, ni classe ni interface, Rencontré un type appelé enum.

Quand je l'ai recherché, il s'appelait "type d'énumération".

Type d'énumération?

Le type d'énumération n'est ni classe ni interface, "déclaration de troisième classe". La caractéristique est que ** une instance de ce type est créée en même temps que la déclaration ** C'est. Et après cela, les instances de ce type sont brutes Il ne peut pas être créé et seule l'instance créée au moment de la déclaration peut être utilisée. Cette "propriété que la mauvaise valeur ne peut pas être utilisée" est garantie par "** type safety" Il est (apparemment) appelé ** ".

public enum Language{
    JAPANESE,
    ENGLISH,
    CHINESE
}

↑ Au moment de la déclaration, instance de type de langue "JAPANESE", "ANGLAIS" et "CHINOIS" sont créés. Ceci pour tout génie Après cela, vous ne pouvez pas créer une nouvelle instance de type Language.

Comment utiliser

Lors de l'utilisation d'une instance de type énumération, "(type name). (Enumerator = instance name)" Décrivez comme ça. Parce qu'une instance d'un type d'énumération se produit lorsque le type est déclaré Parce que c'est une instance statique qui existe depuis (apparemment).

import java.util.Arrays;
import java.util.List;

public class UseEnum{
    public static void main(String[] args){
        List<Country> list = Arrays.asList(
                             new Country("Japan", Language.JAPANESE),
                             new Country("America", Language.ENGLISH),
                             new Country("England", Language.ENGLISH),
                             new Country("CHINA", Language.CHINESE) );
        list.forEach(System.out::println);
    }
}

Résumé

・ Enumeration type enum est l'une des déclarations de classe -La caractéristique est que "une instance est créée en même temps que la déclaration de type" ・ "La sécurité de type est garantie" que "une valeur incorrecte ne peut pas être spécifiée" " -L'instance de type énumération devient une instance statique ・ Par conséquent, lors de son utilisation, décrivez-le sous la forme "(nom du type). (Enumérateur)".

(P.S.) J'étudierai plus (+ o +)

Recommended Posts

Qu'est-ce que Fat⁉ enum?
Qu'est-ce qu'un constructeur
Qu'est-ce qu'un flux
Qu'est-ce qu'un servlet?
Qu'est-ce qu'une classe wrapper?
Qu'est-ce qu'un type booléen?
Qu'est-ce qu'un module Ruby?
Qu'est-ce qu'une virgule flottante?
Qu'est-ce qu'un fichier JAR?
Qu'est-ce qu'une expression lambda?
Qu'est-ce qu'un extrait de code en programmation?
Qu'est-ce qu'un type booléen de colonne?
Qu'est-ce qu'une variable de type référence?
Qu'est-ce qu'une expression lambda (Java)
Qu'est-ce qu'un tableau bidimensionnel Ruby?
Qu'est-ce que Cubby
Qu'est-ce qu'une classe en langage Java (3 /?)
Qu'est-ce qui est nul? ]
Qu'est-ce qu'un terminal? -Chemin absolu et chemin relatif-
Qu'est-ce qu'un fichier .original Spring Boot?
Qu'est-ce que 'java
Qu'est-ce que Keycloak
Qu'est-ce que maven?
Qu'est-ce que Jackson?
[Pour les débutants en programmation] Qu'est-ce qu'une méthode?
Qu'est-ce que soi
Qu'est-ce que ArgumentMatcher?
Qu'est-ce que IM-Juggling?
Qu'est-ce qu'une classe en langage Java (1 /?)
Qu'est-ce que les paramètres
Qu'est-ce que SLF4J?
Qu'est-ce qu'une classe en langage Java (2 /?)
Qu'est-ce que la façade? ??
Qu'est-ce que Gradle?
Qu'est-ce que POJO
Qu'est-ce que 'java
Qu'est-ce que centOS
[Rails] Qu'est-ce qu'un point (.) Ou un deux-points (:)?
Qu'est-ce que before_action?
Qu'est-ce que Docker
Qu'est-ce que Tomcat
Introduction aux fonctions récursives: qu'est-ce qu'une fonction récursive?
Qu'est-ce que l'assemblage Maven?
Qu'est-ce que `docker-compose up`?
Qu'est-ce que vue cli
Qu'est-ce qu'une interface
Qu'est-ce que le moi de Ruby?
Qu'est-ce que le codage en dur?
Qu'est-ce que l'attr_accessor de Ruby?
Qu'est-ce que l'encapsulation Java?
Qu'est-ce que le contrôle d'instance?
Qu'est-ce qu'un initialiseur?
Qu'est-ce que Spring Tools 4
Qu'est-ce qu'un opérateur?
Qu'est-ce que l'orientation objet?
Qu'est-ce que le @VisibleForTesting de Guava?