问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JAVA 枚举类型的编程?

发布网友 发布时间:2022-04-22 13:05

我来回答

1个回答

热心网友 时间:2023-11-05 20:32

枚举(enum)类型是Java 5新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。

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

package com; public enum Color { RED, GREEN, BLANK, YELLOW }

使用
123456789101112131415161718192021

package com; public class B { public static void main(String[] args) { System.out.println( isRed( Color.BLANK ) ) ; //结果: false System.out.println( isRed( Color.RED ) ) ; //结果: true } static boolean isRed( Color color ){ if ( Color.RED.equals( color )) { return true ; } return false ; } }

或者 switch 的使用
12345678910111213141516171819202122232425

package com; public class B { public static void main(String[] args) { showColor( Color.RED ); } static void showColor(Color color){ switch ( color ) { case BLANK: System.out.println( color ); break; case RED : System.out.println( color ); break; default: System.out.println( color ); break; } }}

2、自定义函数

package com; public enum Color { RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("*", 4); private String name ; private int index ; private Color( String name , int index ){ this.name = name ; this.index = index ; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getIndex() { return index; } public void setIndex(int index) { this.index = index; } }
使用
package com; public class B { public static void main(String[] args) { //输出某一枚举的值 System.out.println( Color.RED.getName() ); System.out.println( Color.RED.getIndex() ); //遍历所有的枚举 for( Color color : Color.values()){ System.out.println( color + " name: " + color.getName() + " index: " + color.getIndex() ); } } }
结果
红色
1
RED name: 红色 index: 1
GREEN name: 绿色 index: 2
BLANK name: 白色 index: 3
YELLO name: * index: 4

总结:
1、枚举的本质是类,在没有枚举之前,仍然可以按照java最基本的编程手段来解决需要用到枚举的地方。枚举屏蔽了枚举值的类型信息,不像在用public static final定义变量必须指定类型。枚举是用来构建常量数据结构的模板,这个模板可扩展。枚举的使用增强了程序的健壮性,比如在引用一个不存在的枚举值的时候,编译器会报错。枚举的更多用法还需要在开发中去研究创造,Java5、Java6增加了不少新的特性,技术在升级,对程序员来说就要学习,如果你热爱java的话。否则别人用到新特性的代码你看不懂,那才叫郁闷。
2、枚举在Java家族中只占了很小的一块比重,所以我在项目中用枚举的地方不是很多,毕竟,一个项目是很多人开发维护的,用一个陌生的东西,会给其他的同事造成阅读困难。所以常量大都是用public static final 来定义的。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
邪灯是什么意思? 趣头条怎么解绑微信 趣头条APP解绑微信教程 趣头条怎么解绑微信号 趣头条怎样解除微信绑定 魔兽世界7.0古龙之陨怎么做 咸阳男子欲带孩子轻生被救回,成年人的生活有多不易? 陕西咸阳,一男子欲带孩子轻生被救回,轻生带孩子是什么操作? 我是帅哥,为什么还没有人追? 为什么我这么漂亮就是没有一个男人来追我 气死了? 人不在本地,怎么实名制 樱桃树下能种白豆吗? 越狱第一季逃出来的在第二季谁被抓回了? 越狱第一季逃出来的在第二季谁被抓回了? java中的枚举类型怎么定义? 新鲜大白豆煮下去变绿怎么回事? 越狱是什么意思? 介绍一下java枚举,顺便举个例子,谢谢 越狱是什么意思? 南方种的白豆多长时间浇水 《越狱》一共多少季? Java枚举有什么用? 写个简单例子给我看下啊谢谢.讲的不要太官方了.谢谢 用白豆怎样给君子兰施肥? java中的枚举类型指的是什么啊? 越狱总共几季? java中使用枚举器遍历的一个小问题。 java怎么遍历一个枚举数组的所有集合? Java中枚举怎么遍历 Java枚举有什么用? 写个简单例子给我看下啊谢谢.讲的不要太官方了.谢谢 java中如何判断一个变量是否属于某个枚举类型中的元素? Java中枚举怎么遍历? 抖音主页访客超过60天了怎么还有记录? 《越狱》8个人的结局分别是什么? 白豆泡在水里怎样才会发芽? java枚举类型 越狱是什么意思 越狱是什么意思 白芸豆的栽培 关于java枚举遍历的问题 越狱是什么意思? 越狱是什么意思? 梅艳芳是因为什么原因去世的? 白豆是什么样子的 java 判断一个类是不是枚举 越狱大致故事情节是什么啊 越狱大致故事情节是什么啊 种绿豆和种白豆有没有区别 抖音私密账号看别人主页会有浏览记录吗? 水费可以在手机上交吗 越狱是什么? 越狱是什么?