枚举类型:

1、我们可以这样来定义一个枚举类型

public enum Color{

Red,Blue,Black,Green;

}

然后可以这样来使用:Color myColor = Color.Red

2、枚举类型提供了两个有用的静态方法 values( ) 和 valueOf( ) 我们可以很方便的使用它们,

例如:  for(Color c : Color.values( ))

System.out.println(c);

3、例如:

package Enum;

public class ColorTest {

public static void main(String[] args) {

Color myColor = Color.Red;

System.out.println(myColor);

System.out.println("........................");

for(Color color:Color.values()){

System.out.println(color);

}

}

}

4、在 switch() 括号中一共可以5种类型:char、short、int、long、enum(枚举类型)

可将枚举作为方法的参数,通过在方法中做相应的判断,作出不同的结果。

package Enum;

public class EnumTest01 {

public static void doWhat(OP op){

switch(op){

case TURE_LEFT:

System.out.println("向u24038 转);

break;

case TURE_RIGHT:

System.out.println("向u21491 转);

break;

case SHOOT:

System.out.println("射u20987 ");

break;

}

}

public static void main(String[] args) {

EnumTest01.doWhat(OP.SHOOT);

}

}

enum OP{

TURE_LEFT,TURE_RIGHT,SHOOT;

}

输出结果:射击

5、定义枚举类型时本质上就是定义一个类别,只不过很多细节由编译器帮我们完成了,所以某些程度上,enum关键字的作用 就像是class或interface

6、当我们使用“enum”定义枚举类型时,实质上我们定义出来的类型继承自java.lang.Enum类型,而枚举的成员其实就是我们定义的枚举类型的一个实例(Instance),他们都被预设为final,所以我们无法改变他们,他们也是static成员,所以我们可以通过类型名称直接使用他们,当然最重要的,他们都是公开的(public)。

即,我们定义的每个枚举类型都继承自java.lang.Enum类,枚举中的每一个成员默认都是public static final 的。

而每个枚举的成员其实就是我们定义的枚举类型的一个实例(Instance)。换句话说,当定义了一个枚举类型后,在编译时刻就能确定该枚举类型有几个实例,分别是什么。在运行期间我们无法再使用该枚举类型创建新的实例了,这些实例在编译期间就已经完全确定下来了。  所以在:Color myColor = Color.Red   中,没有new Color()。而是直接赋值

package Enum;

public enum Coin {

banjin("半u26020 "),baliang("八u20004 "),qingyuan("清u28170 "),liping("莉u-31731 ");

private String name;

Coin(String name){

this.name = name;

}

public void setName(String name){

this.name = name;

}

public String getName(){

return name;

}

public static void main(String[] args) {

Coin coin = Coin.baliang;

System.out.println(coin.getName());

}

}

输出:八两

7、通过coin.ordinal()来得到枚举所代表的值,即每个枚举元素从0开始,逐一增加

8、

//检查权限之类的,如一个经理、员工、顾客对一个工具的使用权限,一般用枚举来处理     因为这样子可以用来控制传入判断的参数只能够是该枚举类型的数,从而限制传入的参数。

package Enum;

public class AccessControl {

public static boolean checkRight(AccessRight access){

if(access == AccessRight.MANAGER){

return true;

}

else if(access == AccessRight.DEPARMENT){

return false;

}

else

return false;

}

public static void main(String[] args) {

System.out.println(checkRight(AccessRight.DEPARMENT));

}

}

enum AccessRight{

MANAGER,DEPARMENT,EMPLOYEE;

}

通过这样,只能够传递AccessRight类型的参数,其他参数都是不合法的。

9、

static >

T

valueOf(Class enumType, String name)

返回带指定名称的指定枚举类型的枚举常量。

可以这样子使用 AccessRight access = AccessRight.valueOf("MANAGER");//只要AccessRight中有MANAGER的元素就可以返回这个元素,即将String类型转换为AccessRight类型

java枚举转换_java枚举类(转)相关推荐

  1. java 枚举转换_Java 枚举与字符串的转换

    原标题:Java 枚举与字符串的转换 (点击上方公众号,可快速关注) 来源:xieyu_zy 链接:blog.csdn.net/xieyuooo/article/details/8483267 文章简 ...

  2. java枚举类型转换_java枚举类型enum值与整数的转换

    java编程中偶尔会用到枚举,为了直观,我们通常将枚举值设置为形象的单词,方便理解和使用.枚举类型相当于数据库 中字典表,但是枚举只有字典表的值,缺少其他用来表示和值一一对应的字段,当我们在数据库中保 ...

  3. java枚举 数字_java 枚举

    Java中枚举的线程安全性及序列化问题 --枚举是如何保证线程安全的 要想看源码,首先得有一个类吧,那么枚举类型到底是什么类呢?是enum吗?答案很明显不是,enum就和class一样,只是一个关键字 ...

  4. java枚举数字_Java枚举类型的使用,数值的二进制表示

    一.Java枚举类型的使用 首先请看这段代码: packagejava上课;public classEnumTest {public static voidmain(String[] args) { ...

  5. java枚举数字_Java 枚举 通过数字实例化枚举类型

    package com.zjl.domain.enumtype; /** * 枚举类 * * @Author zjl * @Date 2018/06/27 */ public enum EnumTyp ...

  6. java 枚举 接口_java枚举接口

    java中的枚举类 枚举类(enum),与class和interface关键字地位相同. 枚举类是一个特殊的类,可以有自己的成员变量.方法.构造器,可以实现一个或多个接口.一个java源文件中只能有一 ...

  7. java枚举 赋值_java 枚举 - java 枚举构造函数赋值-java 枚举 set 赋值-嗨客网

    Java枚举教程 我们已经了解了 Java枚举详解 语法 [public] enum 枚举类型名称{ 枚举对象1,枚举对象2,枚举对象3...枚举对象n; } 参数 参数 描述 [public] 可选 ...

  8. java输入枚举型_Java 枚举型为什么是静态的,以及是怎么实现的?

    确实,枚举类型总让我们觉着怪怪的,无论是语法还是静态非静态,还是操作方法,总让人觉着它和数组.列表等格格不入.那到底是为什么呢? 我们从本质分析下java的枚举类型. 1 枚举类型初探 枚举类型,其语 ...

  9. java float转换_Java float转换为String

    Java将float转换为String 我们可以使用String.valueOf()和Float.toString()方法在Java中将float转换为String. 情境 如果必须在文本字段中显示浮 ...

  10. ef 在此上下文中只支持基本类型或枚举类型_Java枚举不应该成为你成功路上得绊脚石,源码给你讲解清楚

    现在在面试的过程中,基础得东西占的比重越来越高,尤其是对于Java底层得一些东西,比方说今天得内容---枚举,单纯说这些知识点其实并不难,甚至在日常得工作中用到的都不算多,但是,在面试的过程中会问到你 ...

最新文章

  1. 这几天有django和python做了一个多用户博客系统(可选择模板) 没完成,先分享下...
  2. 搭建自己的博客(二十六):优化点赞功能,并添加模态登录框
  3. win7分区软件_小编给你传授 win7系统给硬盘分区的修复方案 -win7系统使用教程...
  4. comment.html手机文件,comment.html
  5. ABP理论之CSRF
  6. 03_java基础(四)之方法的创建与调用
  7. 怎么样eclipse发达国家多重聚合关系maven项目和使用git管理
  8. 基于队列的锁:mcs lock简介
  9. 网站html导出excel插件,使用JQuery插件将HTML的table标签数据导出成excel
  10. web前端三大主流框架分析对比
  11. mysql是用啥语言写的_mysql源码是什么语言
  12. HDU4282 A very hard mathematic problem(二分)
  13. photoshop cs6视频教程(从入门到精通)
  14. 微信小程序记事本+后台管理系统
  15. 哈工大计算机网络MOOC作业题解答
  16. C语言取模运算符的妙用
  17. web课程设计-照片记录网站(Flask)【web项目】
  18. VisionPro——在脚本中调用自己封装的DLL
  19. 《Sony Vegas Pro 12标准教程》——1.2 Vegas Pro简介
  20. 统计专用计算机使用年限,『应用』电脑使用时间统计软件--ManicTime

热门文章

  1. wdr7660虚拟服务器设置,TP-Link TL-WDR7660无线桥接怎么设置?
  2. CAD如何绘制六连环图案?CAD使用圆,椭圆,直线综合练习
  3. C语言之结构体 共用体 枚举 typedef
  4. 网格交易法 | 股票市场低风险稳定盈利的方法
  5. 华为云服务器安装win10系统,云服务器安装win10
  6. win11系统项目启动报java.lang.IllegalStateException: Unmapped relationship: 7错误的解决
  7. 微信小程序实现退款,Java版。
  8. win7高级搜索计算机,使用win7系统高级搜索功能的方法介绍
  9. 浪涌测试仪的工作原理
  10. 苹果CMS-v10系统标签