Apprentissage de base de Java : comment utiliser le type Enum
Cet article vous présente une introduction à l'utilisation du type Enum en Java. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.
1. Introduction au type Enum
Type énuméré (Type énuméré ) est apparu très tôt dans les langages de programmation Il est utilisé pour inclure un groupe de valeurs similaires dans un type Parmi elles <.>. Le nom de ce type d'énumération sera défini comme un descripteur de type unique, similaire à la définition d'une constante. Cependant, par rapport aux types constants, les types d'énumération peuvent fournir une plage de valeurs plus large pour les variables déclarées par .
Par exemple, si vous souhaitez dessiner sept couleurs pour l'arc-en-ciel, vous pouvez le faire via une définition constante dans un programme Java. Lorsque vous utilisez
Public static class RainbowColor { // 红橙黄绿青蓝紫七种颜色的常量定义 public static final int RED = 0; public static final int ORANGE = 1; public static final int YELLOW = 2; public static final int GREEN = 3; public static final int CYAN = 4; public static final int BLUE = 5; public static final int PURPLE = 6; }
, vous pouvez référencer directement ces constantes dans le programme. Cependant, cette approche pose encore quelques problèmes.
Type unsafe
Puisque la valeur correspondante de la constante de couleur est un entier, Il est donc très possible de transmettre une valeur entière arbitraire à la variable de couleur lors de l'exécution du programme, provoquant une erreur.
n'a pas d'espace de noms
Puisque les constantes de couleur ne sont que des attributs de la classe, lorsque vous utilisez doivent être accessibles via les classes.
Mauvaise cohérence
Étant donné que les énumérations entières sont des constantes au moment de la compilation, le processus de compilation Une fois terminé, toutes les références côté client et serveur auront des valeurs entières écrites directement. De cette façon, lorsque vous modifiez l'ancienne valeur entière d'énumération ou ajoutez une nouvelle valeur d'énumération, tout le code référencé doit être recompilé, sinon des erreurs se produiront au moment de l'exécution.
Le type n'a aucune signification
Puisque les valeurs d'énumération des couleurs sont simplement certaines valeurs entières ayant une signification, si vous déboguez au moment de l'exécution, vous constaterez qu'il y a de nombreux nombres magiques dans le journal, mais à l'exception des programmeurs eux-mêmes, il est difficile pour les autres de comprendre leur signification .
2. Comment définir le type Enum
Afin d'améliorer les lacunes du langage Java à cet égard, lors de la sortie de la version 5.0 du SDK, des types d'énumération ont été ajoutés au niveau du langage. La définition d'un type d'énumération est également très simple. Utilisez simplement le mot-clé enum plus le nom et le corps de la valeur d'énumération entre accolades. Par exemple, la couleur arc-en-ciel mentionnée ci-dessus peut être redéfinie à l'aide de la nouvelle méthode enum :
non seulement convertit simplement les valeurs entières en objets, mais transforme également la définition du type d'énumération en une définition de classe entièrement fonctionnelle. Cette extension de définition de type permet aux développeurs d'ajouter des méthodes et des propriétés au type d'énumération et d'implémenter n'importe quelle interface. De plus, la plate-forme Java fournit également des implémentations de haute qualité pour le type Enum Par exemple, la valeur par défaut implémente Comparable et. Interfaces sérialisables, permettant aux développeurs de Normalement, vous n'avez pas à vous soucier de ces détails. 回到本文的主题上来,引入枚举类型到底能够给我们开发带来什么样好处呢?一个最直接的益处就是扩大 switch 语句使用范围。5.0 之前,Java 中 switch 的值只能够是简单类型,比如 int、byte、short、char, 有了枚举类型之后,就可以使用对象了。这样一来,程序的控制选择就变得更加的方便,看下面的例子: 定义 Enum 类型 对于这些枚举的日期,JVM 都会在运行期构造成出一个简单的对象实例一一对应。这些对象都有唯一的 identity,类似整形数值一样,switch 语句就根据此来进行执行跳转。 如何定制 Enum 类型 除了以上这种最常见的枚举定义形式外,如果需要给枚举类型增加一些复杂功能,也可以通过类似 class 的定义来给枚举进行定制。比如要给 enum 类型增加属性,可以像下面这样定义: 上面头条新闻的枚举类型增加了一个 RSS 地址的属性 , 记录头条新闻的访问地址。同时,需要外部传入 RSS 访问地址的值,因而需要定义一个构造函数来初始化此属性。另外,还需要向外提供方法来读取 RSS 地址。// 定义一周七天的枚举类型
public enum WeekDayEnum { Mon, Tue, Wed, Thu, Fri, Sat, Sun }
// 读取当天的信息
WeekDayEnum today = readToday();
// 根据日期来选择进行活动
switch(today) {
Mon: do something; break;
Tue: do something; break;
Wed: do something; break;
Thu: do something; break;
Fri: do something; break;
Sat: play sports game; break;
Sun: have a rest; break;
}
// 定义 RSS(Really Simple Syndication) 种子的枚举类型
public enum NewsRSSFeedEnum {
// 雅虎头条新闻 RSS 种子
YAHOO_TOP_STORIES("<a href="http://rss.news.yahoo.com/rss/topstories"><code>http://rss.news.yahoo.com/rss/topstories</code></a>"),
//CBS 头条新闻 RSS 种子
CBS_TOP_STORIES("<a href="http://feeds.cbsnews.com/CBSNewsMain?format=xml"><code>http://feeds.cbsnews.com/CBSNewsMain?format=xml</code></a>"),
// 洛杉矶时报头条新闻 RSS 种子
LATIMES_TOP_STORIES("<a href="http://feeds.latimes.com/latimes/news?format=xml"><code>http://feeds.latimes.com/latimes/news?format=xml</code></a>");
// 枚举对象的 RSS 地址的属性
private String rss_url;
// 枚举对象构造函数
private NewsRSSFeedEnum(String rss) {
this.rss_url = rss;
}
// 枚举对象获取 RSS 地址的方法
public String getRssURL() {
return this.rss_url;
}
}
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide de la racine carrée en Java. Nous discutons ici du fonctionnement de Square Root en Java avec un exemple et son implémentation de code respectivement.

Guide du nombre parfait en Java. Nous discutons ici de la définition, comment vérifier le nombre parfait en Java ?, des exemples d'implémentation de code.

Guide du générateur de nombres aléatoires en Java. Nous discutons ici des fonctions en Java avec des exemples et de deux générateurs différents avec d'autres exemples.

Guide de Weka en Java. Nous discutons ici de l'introduction, de la façon d'utiliser Weka Java, du type de plate-forme et des avantages avec des exemples.

Guide du nombre de Smith en Java. Nous discutons ici de la définition, comment vérifier le numéro Smith en Java ? exemple avec implémentation de code.

Dans cet article, nous avons conservé les questions d'entretien Java Spring les plus posées avec leurs réponses détaillées. Pour que vous puissiez réussir l'interview.

Java 8 présente l'API Stream, fournissant un moyen puissant et expressif de traiter les collections de données. Cependant, une question courante lors de l'utilisation du flux est: comment se casser ou revenir d'une opération FOREAK? Les boucles traditionnelles permettent une interruption ou un retour précoce, mais la méthode Foreach de Stream ne prend pas directement en charge cette méthode. Cet article expliquera les raisons et explorera des méthodes alternatives pour la mise en œuvre de terminaison prématurée dans les systèmes de traitement de flux. Lire plus approfondie: Améliorations de l'API Java Stream Comprendre le flux Forach La méthode foreach est une opération terminale qui effectue une opération sur chaque élément du flux. Son intention de conception est

Guide de TimeStamp to Date en Java. Ici, nous discutons également de l'introduction et de la façon de convertir l'horodatage en date en Java avec des exemples.
