当前位置:首页 » 编程语言 » java枚举常量

java枚举常量

发布时间: 2022-12-20 02:45:21

java:这里的枚举常量是如何定义的呢

枚举(从JDK1.5开始有)
用于代表”实例已经固定“的类,而且定义时就必须在【第一行】创建初始化并列出来。
语法格式:
修饰符 enum 枚举名{
//立即在第一行列出该枚举的所有实例。

}

—— 修饰符 可以是 public | 省略 | abstract | final。 abstract与final必须出现其中一个。
—— 枚举的构造器只能用private修饰。
—— 枚举类的实例必须在第一行显式的列出。

所有的枚举都有一个values()方法,返回枚举实例

switch(byte|short|char|int|String|枚举)

●有了枚举之后,它的实例已经创建出来了,只需要用它们就行了。
●枚举可以有Field,方法,构造器(只能是private修饰),初始化块,内部类。

列出枚举值,并不是简单的定义几个枚举值的变量名。
而是调用枚举类的构造器来创建相应的实例。

定义枚举的方法时要非常小心,

●包含抽象方法的枚举类

●枚举可以实现接口。

A。实现接口,并直接实现所有的抽象方法。
此时枚举类不再是抽象枚举了。

B。实现接口,但并不直接实现抽象方法。
此时枚举类就只能是抽象枚举类。

❷ java中的枚举类和常量类区别在哪儿

说白了
枚举就是将常量值限定在了指定的范围,
比如定义常量 int型 可以键入 任何的int值
如果定义枚举 里面 有 int 型 1 2 3 那么这个地方就只能键入1 2 3 中的一个,

❸ 如何使用java 枚举定义常量

枚举类:
publicenumColor{
RED("红色",1),GREEN("绿色",2),BLANK("白色",3),YELLO("黄色",4);


privateStringname;
privateintindex;

privateColor(Stringname,intindex){
this.name=name;
this.index=index;
}

publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetIndex(){
returnindex;
}
publicvoidsetIndex(intindex){
this.index=index;
}
}

测试类:
publicclassB{

publicstaticvoidmain(String[]args){

//输出某一枚举的值
System.out.println(Color.RED.getName());
System.out.println(Color.RED.getIndex());

//遍历所有的枚举
for(Colorcolor:Color.values()){
System.out.println(color+"name:"+color.getName()+"index:"+color.getIndex());
}
}

}

输出结果:
红色
1
REDname:红色index:1
GREENname:绿色index:2
BLANKname:白色index:3
YELLOname:黄色index:4

❹ java枚举类型enum用法

用法如下:

用法一:常量 在JDK1.5之前,我们定义常量都是:public static fianl....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法

用法六:使用接口组织枚举

用法七:关于枚举集合的使用

❺ JAVA中的枚举常量是什么

枚举用于声明一组命名的常数,当一个变量有几种可能的取值时,可以将它定义为枚举类型。

  1. 任意两个枚举成员不能具有相同的名称

  2. 在枚举类型中声明的第一个枚举成员它的默值为0

  3. 允许多个枚举成员有相同的值.

  4. 没有显示赋值的枚举成员的值,总是前一个枚举成员的值+1.

e.g:

public enum Number

{

a=1,

b,

c=1,

d

} ;

b的值为2,d的值为2.

❻ java枚举与常量类区别

常量publicclassConstant{publicstaticfinalStringCONST_ONE="bb";publicstaticfinalStringCONST_TWO="cc";}

  • 常量作为参数时,是String,int等弱类型,开发人员可以传入没有在常量接口里定义的值,这个问题无法通过编译器发现。

  • 由于开发人员可以直接写常量,所以不能用==对比,只能用equals对比,不能优化性能。

  • 开发人员没有参考资料时,不可能知道某个int类型的参数到底应该赋什么内容。

  • 编译时,是直接把常量的值编译到类的二进制代码里,常量的值在升级中变化后,需要重新编译引用常量的类,因为里面存的是旧值。

  • 如果常量类的构造器不私有,无法限制开发员继承/实现接口,开发员能够在子接口里继续添加常量.而这些常量可能得不到祖先层的支持。

  • 枚举类

  • publicclassConstant{privateStringname;privateEnumClassA(){this.name=name;}_ONE=newConstant("bb");_ONE=newConstant("cc");}

  • 私有构造函数,避免被继承和扩展。

  • 定义方法的参数时,必须用枚举常量类类型,如上面的Constant,这样就转变成了强类型,不会出现弱类型引用的问题。

  • 常量值地址唯一,可以用==直接对比,性能会有提高。

  • 编译时,没有把常量值编译到代码里,即使常量的值发生变化,也不会影响引用常量的类。

热点内容
随机启动脚本 发布:2025-07-05 16:10:30 浏览:517
微博数据库设计 发布:2025-07-05 15:30:55 浏览:20
linux485 发布:2025-07-05 14:38:28 浏览:299
php用的软件 发布:2025-07-05 14:06:22 浏览:751
没有权限访问计算机 发布:2025-07-05 13:29:11 浏览:428
javaweb开发教程视频教程 发布:2025-07-05 13:24:41 浏览:690
康师傅控流脚本破解 发布:2025-07-05 13:17:27 浏览:235
java的开发流程 发布:2025-07-05 12:45:11 浏览:681
怎么看内存卡配置 发布:2025-07-05 12:29:19 浏览:279
访问学者英文个人简历 发布:2025-07-05 12:29:17 浏览:828