This article mainly introduces the use of Java enumeration in detail, which has certain reference value. Interested friends can refer to it
In actual programming, there are often such situations "Data set", their values are stable in the program, and the elements in the "data set" are limited.
For example, seven data elements from Monday to Sunday make up the "data set" of the week, and four data elements of spring, summer, autumn and winter make up the "data set" of the four seasons.
How to better use these "data sets" in java? Therefore, enumerations come in handy. The following code details the use of enumerations.
package com.ljq.test; /** * 枚举用法详解 * * @author jiqinlin * */ public class TestEnum { /** * 普通枚举 * * @author jiqinlin * */ public enum ColorEnum { red, green, yellow, blue; } /** * 枚举像普通的类一样可以添加属性和方法,可以为它添加静态和非静态的属性或方法 * * @author jiqinlin * */ public enum SeasonEnum { //注:枚举写在最前面,否则编译出错 spring, summer, autumn, winter; private final static String position = "test"; public static SeasonEnum getSeason() { if ("test".equals(position)) return spring; else return winter; } } /** * 性别 * * 实现带有构造器的枚举 * * @author jiqinlin Java学习交流QQ群:589809992 我们一起学Java! * */ public enum Gender{ //通过括号赋值,而且必须带有一个参构造器和一个属性跟方法,否则编译出错 //赋值必须都赋值或都不赋值,不能一部分赋值一部分不赋值;如果不赋值则不能写构造器,赋值编译也出错 MAN("MAN"), WOMEN("WOMEN"); private final String value; //构造器默认也只能是private, 从而保证构造函数只能在内部使用 Gender(String value) { this.value = value; } public String getValue() { return value; } } /** * 订单状态 * * 实现带有抽象方法的枚举 * * @author jiqinlin * */ public enum OrderState { /** 已取消 */ CANCEL {public String getName(){return "已取消";}}, /** 待审核 */ WAITCONFIRM {public String getName(){return "待审核";}}, /** 等待付款 */ WAITPAYMENT {public String getName(){return "等待付款";}}, /** 正在配货 */ ADMEASUREPRODUCT {public String getName(){return "正在配货";}}, /** 等待发货 */ WAITDELIVER {public String getName(){return "等待发货";}}, /** 已发货 */ DELIVERED {public String getName(){return "已发货";}}, /** 已收货 */ RECEIVED {public String getName(){return "已收货";}}; public abstract String getName(); } public static void main(String[] args) { //枚举是一种类型,用于定义变量,以限制变量的赋值;赋值时通过“枚举名.值”取得枚举中的值 ColorEnum colorEnum = ColorEnum.blue; switch (colorEnum) { case red: System.out.println("color is red"); break; case green: System.out.println("color is green"); break; case yellow: System.out.println("color is yellow"); break; case blue: System.out.println("color is blue"); break; } //遍历枚举 System.out.println("遍历ColorEnum枚举中的值"); for(ColorEnum color : ColorEnum.values()){ System.out.println(color); } //获取枚举的个数 System.out.println("ColorEnum枚举中的值有"+ColorEnum.values().length+"个"); //获取枚举的索引位置,默认从0开始 System.out.println(ColorEnum.red.ordinal());//0 System.out.println(ColorEnum.green.ordinal());//1 System.out.println(ColorEnum.yellow.ordinal());//2 System.out.println(ColorEnum.blue.ordinal());//3 //枚举默认实现了java.lang.Comparable接口 System.out.println(ColorEnum.red.compareTo(ColorEnum.green));//-1 //-------------------------- System.out.println("==========="); System.err.println("季节为" + SeasonEnum.getSeason()); //-------------- System.out.println("==========="); for(Gender gender : Gender.values()){ System.out.println(gender.value); } //-------------- System.out.println("==========="); for(OrderState order : OrderState.values()){ System.out.println(order.getName()); } } }
The above is the detailed content of Introduction to how to use enumerations in Java. For more information, please follow other related articles on the PHP Chinese website!

The class loader ensures the consistency and compatibility of Java programs on different platforms through unified class file format, dynamic loading, parent delegation model and platform-independent bytecode, and achieves platform independence.

The code generated by the Java compiler is platform-independent, but the code that is ultimately executed is platform-specific. 1. Java source code is compiled into platform-independent bytecode. 2. The JVM converts bytecode into machine code for a specific platform, ensuring cross-platform operation but performance may be different.

Multithreading is important in modern programming because it can improve program responsiveness and resource utilization and handle complex concurrent tasks. JVM ensures the consistency and efficiency of multithreads on different operating systems through thread mapping, scheduling mechanism and synchronization lock mechanism.

Java's platform independence means that the code written can run on any platform with JVM installed without modification. 1) Java source code is compiled into bytecode, 2) Bytecode is interpreted and executed by the JVM, 3) The JVM provides memory management and garbage collection functions to ensure that the program runs on different operating systems.

Javaapplicationscanindeedencounterplatform-specificissuesdespitetheJVM'sabstraction.Reasonsinclude:1)Nativecodeandlibraries,2)Operatingsystemdifferences,3)JVMimplementationvariations,and4)Hardwaredependencies.Tomitigatethese,developersshould:1)Conduc

Cloud computing significantly improves Java's platform independence. 1) Java code is compiled into bytecode and executed by the JVM on different operating systems to ensure cross-platform operation. 2) Use Docker and Kubernetes to deploy Java applications to improve portability and scalability.

Java'splatformindependenceallowsdeveloperstowritecodeonceandrunitonanydeviceorOSwithaJVM.Thisisachievedthroughcompilingtobytecode,whichtheJVMinterpretsorcompilesatruntime.ThisfeaturehassignificantlyboostedJava'sadoptionduetocross-platformdeployment,s

Containerization technologies such as Docker enhance rather than replace Java's platform independence. 1) Ensure consistency across environments, 2) Manage dependencies, including specific JVM versions, 3) Simplify the deployment process to make Java applications more adaptable and manageable.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Zend Studio 13.0.1
Powerful PHP integrated development environment

SublimeText3 Chinese version
Chinese version, very easy to use

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

PhpStorm Mac version
The latest (2018.2.1) professional PHP integrated development tool

SublimeText3 Mac version
God-level code editing software (SublimeText3)