java enum(枚举)使用详解 + 总结

Java -枚举的使用 枚举常量更简单安全。枚举具有内置方法 ,代码更优雅缺点:3. 不可继承,无法扩展,【从构造的方法的私有性就能看出来】1、枚举 将常量组织起来统一进行管理,更简单安全。2、枚举本身就是一个类,其构造方法默认为私有的,且都是默认继承于 java.lang.Enum3、 枚举可以避免反射和序列化问题:枚举类非常安全!4、不可继承,无法扩展。5、枚举具有内置方法 ,代码更优雅。 阅读详情
    enum 的全称为 enumeration, 是 JDK 1.5  中引入的新特性,存放在 java.lang 包中。


    下面是我在使用 enum 过程中的一些经验和总结,主要包括如下内容:


1. 原始的接口定义常量


2. 语法(定义)


3. 遍历、switch 等常用操作


4. enum 对象的常用方法介绍


5. 给 enum 自定义属性和方法


6. EnumSet,EnumMap 的应用


7. enum 的原理分析


8. 总结




原始的接口定义常量
?


public
interface
IConstants { 
    
String MON = "Mon"; 
    
String TUE = "Tue"; 
    
String WED = "Wed"; 
    
String THU = "Thu"; 
    
String FRI = "Fri"; 
    
String SAT = "Sat"; 
    
String SUN = "Sun"; 
}


语法(定义)
    创建枚举类型要使用 enum 关键字,隐含了所创建的类型都是 java.lang.Enum 类的子类(java.lang.Enum 是一个抽象类)。枚举类型符合通用模式 
Class Enum<E extends Enum<E>>
,而 
E
表示枚举类型的名称。枚举类型的每一个值都将映射到 
protected Enum(String name, int ordinal)
构造函数中,在这里,每个值的名称都被转换成一个字符串,并且序数设置表示了此设置被创建的顺序。




?


package
com.hmw.test; 
/** 
 
* 枚举测试类 
 
* @author <a href="mailto:hemingwang0902@126.com">何明旺</a> 
 
*/
public
enum
EnumTest { 
    
MON, TUE, WED, THU, FRI, SAT, SUN; 
}


这段代码实际上调用了7次 Enum(String name, int ordinal):




?


new
Enum<EnumTest>(
"MON"
,
0
); 
new
Enum<EnumTest>(
"TUE"
,
1
); 
new
Enum<EnumTest>(
"WED"
,
2
); 
    
... ...


遍历、switch 等常用操作
对enum进行遍历和switch的操作示例代码:




?


public
class
Test { 
    
public
static
void
main(String[] args) { 
        
for
(EnumTest e : EnumTest.values()) { 
            
System.out.println(e.toString()); 
        
} 
         
 
        
System.out.println(
"----------------我是分隔线------------------"
); 
         
 
        
EnumTest test = EnumTest.TUE; 
        
switch
(test) { 
        
case
MON: 
            
System.out.println(
"今天是星期一"
); 
            
break
; 
        
case
TUE: 
            
System.out.println(
"今天是星期二"
); 
            
break
; 
        
// ... ... 
        
default
: 
            
System.out.println(test); 
            
break
; 
        
} 
    
} 
}


输出结果: 
?


MON 
TUE 
WED 
THU 
FRI 
SAT 
SUN 
----------------我是分隔线------------------ 
今天是星期二


enum 对象的常用方法介绍


int 
compareTo(E o)
          比较此枚举与指定对象的顺序。




Class<E> 
getDeclaringClass()
          返回与此枚举常量的枚举类型相对应的 Class 对象。




String 
name()
          返回此枚举常量的名称,在其枚举声明中对其进行声明。




int 
ordinal()
          返回枚举常量的序数(它在枚举声明中的位置,其中初始常量序数为零)。




String 
toString()




 
          返回枚举常量的名称,它包含在声明中。




static 
<T extends Enum<T>> T 
valueOf(Class<T> enumType, String name)
          返回带指定名称的指定枚举类型的枚举常量。




?


public
class
Test { 
    
public
static
void
main(String[] args) { 
        
EnumTest test = EnumTest.TUE; 
         
 
        
//compareTo(E o) 
        
switch
(test.compareTo(EnumTest.MON)) { 
        
case
-
1
: 
            
System.out.println(
"TUE 在 MON 之前"
); 
            
break
; 
        
case
1
: 
            
System.out.println(
"TUE 在 MON 之后"
); 
            
break
; 
        
default
: 
            
System.out.println(
"TUE 与 MON 在同一位置"
); 
            
break
; 
        
} 
         
 
        
//getDeclaringClass() 
        
System.out.println(
"getDeclaringClass(): "
+ test.getDeclaringClass().getName()); 
         
 
        
//name() 和  toString() 
        
System.out.println(
"name(): "
+ test.name()); 
        
System.out.println(
"toString(): "
+ test.toString()); 
         
 
        
//ordinal(), 返回值是从 0 开始 
        
System.out.println(
"ordinal(): "
+ test.ordinal()); 
    
} 
}


输出结果: 
?


TUE 在 MON 之后 
getDeclaringClass(): com.hmw.test.EnumTest 
name(): TUE 
toString(): TUE 
ordinal(): 1


给 enum 自定义属性和方法
给 enum 对象加一下 value 的属性和 getValue() 的方法:




?


package
com.hmw.test; 
 
 
/** 
 
* 枚举测试类 
 
*  
 
* @author <a href="mailto:hemingwang0902@126.com">何明旺</a> 
 
*/
public
enum
EnumTest { 
    
MON(
1
), TUE(
2
), WED(
3
), THU(
4
), FRI(
5
), SAT(
6
) { 
        
@Override
        
public
boolean
isRest() { 
            
return
true
; 
        
} 
    
}, 
    
SUN(
0
) { 
        
@Override
        
public
boolean
isRest() { 
            
return
true
; 
        
} 
    
}; 
 
 
    
private
int
value; 
 
 
    
private
EnumTest(
int
value) { 
        
this
.value = value; 
    
} 
 
 
    
public
int
getValue() { 
        
return
value; 
    
} 
 
 
    
public
boolean
isRest() { 
        
return
false
; 
    
} 
}


?


public
class
Test { 
    
public
static
void
main(String[] args) { 
        
System.out.println(
"EnumTest.FRI 的 value = "
+ EnumTest.FRI.getValue()); 
    
} 
}


输出结果: 
?


EnumTest.FRI 的 value = 5


EnumSet,EnumMap 的应用
?


public
class
Test { 
    
public
static
void
main(String[] args) { 
        
// EnumSet的使用 
        
EnumSet<EnumTest> weekSet = EnumSet.allOf(EnumTest.
class
); 
        
for
(EnumTest day : weekSet) { 
            
System.out.println(day); 
        
} 
 
 
        
// EnumMap的使用 
        
EnumMap<EnumTest, String> weekMap = 
new
EnumMap(EnumTest.
class
); 
        
weekMap.put(EnumTest.MON, 
"星期一"
); 
        
weekMap.put(EnumTest.TUE, 
"星期二"
); 
        
// ... ... 
        
for
(Iterator<Entry<EnumTest, String>> iter = weekMap.entrySet().iterator(); iter.hasNext();) { 
            
Entry<EnumTest, String> entry = iter.next(); 
            
System.out.println(entry.getKey().name() + 
":"
+ entry.getValue()); 
        
} 
    
} 
}


原理分析
        enum 的语法结构尽管和 class 的语法不一样,但是经过编译器编译之后产生的是一个class文件。该class文件经过反编译可以看到实际上是生成了一个类,该类继承了java.lang.Enum<E>。EnumTest 经过反编译(javap com.hmw.test.EnumTest 命令)之后得到的内容如下:




?


public
class
com.hmw.test.EnumTest 
extends
java.lang.Enum{ 
    
public
static
final
com.hmw.test.EnumTest MON; 
    
public
static
final
com.hmw.test.EnumTest TUE; 
    
public
static
final
com.hmw.test.EnumTest WED; 
    
public
static
final
com.hmw.test.EnumTest THU; 
    
public
static
final
com.hmw.test.EnumTest FRI; 
    
public
static
final
com.hmw.test.EnumTest SAT; 
    
public
static
final
com.hmw.test.EnumTest SUN; 
    
static
{}; 
    
public
int
getValue(); 
    
public
boolean
isRest(); 
    
public
static
com.hmw.test.EnumTest[] values(); 
    
public
static
com.hmw.test.EnumTest valueOf(java.lang.String); 
    
com.hmw.test.EnumTest(java.lang.String, 
int
, 
int
, com.hmw.test.EnumTest); 
}


所以,实际上 enum 就是一个 class,只不过 java 编译器帮我们做了语法的解析和编译而已。 
总结
    可以把 enum 看成是一个普通的 class,它们都可以定义一些属性和方法,不同之处是:enum 不能使用 extends 关键字继承其他类,因为 enum 已经继承了 java.lang.Enum(java是单一继承)。
java enum枚举详解 说法是否正确enum底层基于✅完全正确所有枚举都隐式继承Enum<E>✅ 是name和ordinal来自Enum类✅ 是开发者不能手动继承Enum✅ 是(语言禁止)枚举仍是“类”,只是特殊语法✅ 是enum关键字的本质,就是 Java 提供的一种“安全、简洁、功能完整”的方式,来创建继承自的常量类。这就是 Java 枚举既简单又强大的秘密 🌟这是一个非常深刻的问题!你已经触及了 Java 语言设计的核心安全机制。问题答案能否手动?❌不能,编译器禁止为什么禁止? 阅读详情

相关推荐

AI代码标注专家Prompt指令的最佳实践

AI代码标注专家 Prompt 可作为项目级别提示词使用,专门负责为 AI 生成的代码添加特定的注释标记,然后基于 Node 脚本可以初步统计出 AI 代码占比。

💻 Code:TypeScript / Engineering 🤖 AI:Prompt Optimization / Context Memory / Coding Agents 615

Java 枚举(enum) 详解7种常见的用法

JDK1.5引入了新的类型——枚举。在Java中它虽然算个“小”功能,却给我的开发带来了“大”方便。 大师兄我【大师兄】又加上自己的理解,来帮助各位理解一下。 用法一:常量 在JDK1.5之前,我们定义常量都是:public static final....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 Java代码 publ...

请叫我大师兄 88万+

电驱系统功率级“多合一”解决方案

如何提升电驱动系统的产品性能、减小能耗和进一步轻量化,以加强整车市场竞争力,是摆在国内外新能源车企面前的共同课题。为此,具有多年动力总成电子系统开发经验的美国著名半导体及电子解决方案专家——德州仪器(Texas Instrument)提出了多种功率级别“多合一”整合方案和设计思路,助力新能源车企提升技术优势。

yessunday的专栏 1371

Java-枚举类的使用(详解)

枚举类的使用一、自定义枚举类(JDK1.5之前)1. 概述2. 实现2.1 属性2.2 构造器3. 演示二、用关键字enum定义枚举类(JDK 1.5)1. 实现1.1 属性1.2 构造器2. 演示三、Enum类的方法四、实现接口的枚举类 (1)类的对象只有有限个,确定的。举例如下: 星期:Monday(星期一)、…、Sunday(星期天) 性别:Man(男)、Woman(女) 季节:Spring(春节)…Winter(冬天) 支付方式:Cash(现金)、WeChatPay(微信)、Alipay(支付宝

weixin_52533007的博客 6253

微信支付V2,jsapi支付拉起收银台报错:调用支付JSAPI缺少参数:total_fee

拉起收银台报错

m0_54355172的博客 3873

TouchGFX在STM32上的移植全过程:超详细版指南

深入讲解将TouchGFX集成到STM32开发环境的每一步,涵盖配置、驱动适配与UI调试。无论是初学者还是进阶开发者,都能快速掌握TouchGFX在嵌入式平台的应用技巧。

weixin_42443533的博客 600

Java 枚举(enum) 的常见用法和开发规范

JDK1.5引入了新的类型——枚举。在 Java 中它虽然算个“小”功能,却给我的开发带来了“大”方便。 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static final.... 。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。 publicenumColor{ RED,GREEN...

dichengyan0013的博客 3949

MCAL中MCU的配置

MCAL配置中MCU配置,PLL计算配置,系统时钟以及各模块参数配置

dhyw12399999的博客 3794

【Java枚举enum】--- 基本使用

Java基础之枚举

qq_44397508的博客 1868

电化学-论文分享-NanoStat: An open source, fully wireless potentiostat

本文主要分享论文NanoStat: An open source, fully wireless potentiostat,并记录学习笔记。如果有条件,建议看原文最好。

分享技术笔记,希望对大家能够有一定的帮助,同时也通过归纳总结提升自己的个人能力。 2874

Chamfer Loss

ChamferLoss是一种常用于3D点云(pointcloud)处理的损失函数,特别是在点云生成和对齐任务中。它的目的是度量两个点集之间的相似度,特别是在点云重建、配准或生成等任务中,常用于优化模型使得生成的点云更接近真实的点云。

夜空中明亮的星的专栏 455

Java 枚举enum的用法

在 JDK 1.5 之前没有枚举类型,那时候一般用接口常量来替代。而使用 Java 枚举类型 enum 可以更贴近地表示这种常量。 文章目录前言一、ENUM二、enum的常用七种方法1.常量2.switch3.向枚举中添加新方法4.覆盖枚举的方法5.实现接口6.使用接口组织枚举7.关于枚举集合的使用总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,

m0_53587898的博客 5352

Unity 热更 之 【YooAsset 热更】几分钟快速了解 YooAsset [功能面板]、以及 [基础代码] 说明

Unity 的资源管理系统不断发展,以适应不同项目的需求和解决特定的问题。AssetBundle 和 Addressable Asset System 是 Unity 官方提供的资源管理解决方案,而 YooAsset 是第三方提供的资源管理系统。简化的API和易用性YooAsset 可能提供了更简单直观的 API,使得资源加载和管理更加容易。对于不熟悉 Addressable 或 AssetBundle 复杂配置的开发者来说,YooAsset 可能是一个更易于上手的选择。性能优化。

仙魁XAN 2956

java中 enum什么意思_Java中枚举Enum的使用详解

在某些情况下,一个类的对象时有限且固定的,如季节类,它只有春夏秋冬4个对象这种实例有限且固定的类,在 Java 中被称为枚举类;在 Java 中使用 enum 关键字来定义枚举类,其地位与 class、interface 相同;枚举类是一种特殊的类,它和普通的类一样,有自己的成员变量、成员方法、构造器 (只能使用 private 访问修饰符,所以无法从外部调用构造器,构造器只在构造枚举值时被调用)...

weixin_31925745的博客 1991

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Java中枚举类enum的values()方法的详解

如果使用了enum关键字来声明枚举类,则声明的枚举类默认继承了Enum类,并且底层默认是一个final类。2.编写自定义的enum时,其中是不含values()方法的,再编译java文件时,java编译器会自动帮助我们生成这个方法。

qq_48778364的博客 8571

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

讲解一下java枚举(enum)以及使用方法

在实际编程中,往往存在着这样的“数据集”,它们的数值在程序中是稳定的,而且“数据集”中的元素是有限的。 例如星期一到星期日七个数据元素组成了一周的“数据集”,春夏秋冬四个数据元素组成了四季的“数据集”。 enum 的全称为 enumeration, 是 JDK 1.5 中引入的新特性,存放在 Java.lang 包中,在上面的这种情况下,enum就能派上用场了。枚举类型的用途不仅如此,具体可用场景可看下面的介绍 1、常量 以前我们定义一个常量通常都是使用 public static final

msbjy的博客 6655

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Java 枚举enum

Java 枚举enum 基本使用

weixin_45339291的博客 739

Java 枚举(enum)剖析

目录 Java 枚举(enum)概述 枚举常量 属性与方法 枚举参数 实现接口 抽象方法 Java 枚举(enum)概述 1、Java JDK 1.5 新增的 enum 关键词,可以定义枚举类,如 public enum WeekEnum { }. 2、使用 enum 定义后的枚举类在编译后默认继承 java.lang.Enum 类,而不是普通的继承 Object 类。由于 Ja...

蚩尤后裔-汪茂雄 8407

java enum 序号_Java的枚举enum示例详解

一. 什么是枚举枚举是一种数据类型,具有集合的一些特点,可以存放多个元素,但存储对象有限且固定,枚举也有比较常见的使用场景,如我们需要表达性别(男、女),颜色(红、黄、蓝),星期(星期一、星期二...星期日),四季(春、夏、秋、冬),地理位置(东、西、南、北),方向(前、后、左、右)等,这些场景都非常适合枚举。二. 定义枚举java中使用enum来定义枚举,和class,interface具有同样...

weixin_33328904的博客 1379

JAVA 获取Enum枚举对象、枚举值、枚举列表

场景: 在开发过程中,经常会遇到需要根据枚举的code获取对应name或根据name获取对应code的需求;抑或是需要根据code或name获取对应枚举对象。 在开发过程中,前端需要获取下拉选择器中的数据项,通常存放数据库字典表中,本文采取返回枚举列表的方式提供。 一、Enum根据code/name获取枚举对象、根据code获取name、根据name获取code。 @Getter @AllArgsConstructor public enum BorrowStatusEnum {

WuTong_Li 3万+

Java枚举(enum)详解

目录1. 枚举概述2. 枚举类型的定义2.1 自定义枚举类2.2 使用enum定义枚举3. 枚举的隐含直接父类:Enum类3.1 Enum类的主要方法4. 枚举实现接口 1. 枚举概述 枚举:列举,一个一个地列出来。 Java枚举:把某个类型的对象,全部列出来。 什么情况下会用到枚举类型? 某些类的对象只有确定的有限个时,可以把这样的类声明为枚举。 例如: 星期:Monday(星期一)…Sunday(星期天) 性别:Male(男)、Female(女) 月份:January(1月)…December(1

sun10367的博客 1339

JAVA之枚举Enum

一、什么是枚举? 二、枚举的一些关键特性 三、枚举使用场景 四、枚举与常量类 五、枚举与普通类 六、枚举与数据库 七、单个参数示例:(类似普通类中得构造参数) 八、多个参数:(类似普通类中得构造参数) 九、异常处理应用 十、高级操作 十一、枚举上使用注解

weixin_38959316的博客 7890

Java 枚举(enum)

目录 前言 一、枚举是什么? 二、枚举的定义 1.自定义枚举类 2.enum关键字创建枚举类 三、自定义枚举类 1、步骤 2、代码 3、使用 三、enum定义枚举类 1、定义 2、使用 3、switch 中使用枚举类 4、有关构造函数 5、实现接口的枚举类 6、有抽象方法的枚举类 ​​​​​​​​ 前言 本篇内容是对Java中的枚举类进行学习记录 一、枚举是什么? Java 枚举是一个特殊的类,一般表示一组常量,比如一年的 4 个季节,一个年的 1...

lcgskycby的博客 3656

enum java 判断相等_聊一聊Java的枚举enum

一. 什么是枚举枚举是一种数据类型,具有集合的一些特点,可以存放多个元素,但存储对象有限且固定,枚举也有比较常见的使用场景,如我们需要表达性别(男、女),颜色(红、黄、蓝),星期(星期一、星期二...星期日),四季(春、夏、秋、冬),地理位置(东、西、南、北),方向(前、后、左、右)等,这些场景都非常适合枚举。二. 定义枚举java中使用enum来定义枚举,和class,interface具有同样...

weixin_28689729的博客 1万+

java之enum枚举类

java之enum枚举类java之enum枚举类

hyp520520的博客 852
上一篇: PHP环境中内置了魔法转义的功能,默认情况下是开启的
下一篇: CSS2圆角效果
HackProgramer
博客等级 码龄12年 255粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值