当前位置: 首页 > news >正文

安徽建设监理协会网站济南seo外包服务

安徽建设监理协会网站,济南seo外包服务,wordpress首页封面图片不显示,网站开发工程师6一、理解枚举类型 枚举类型是Java 5中新增特性的一部分,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。下面先来看看如何写…

一、理解枚举类型

枚举类型是Java 5中新增特性的一部分,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性、安全性以及便捷性。下面先来看看如何写一个枚举?

二、枚举的定义语法

在没有枚举类型时定义常量常见的方式 

public class DayDemo {public static final int MONDAY =1;public static final int TUESDAY=2;public static final int WEDNESDAY=3;public static final int THURSDAY=4;public static final int FRIDAY=5;public static final int SATURDAY=6;public static final int SUNDAY=7;}

 上述的常量定义常量的方式称为int枚举模式,这样的定义方式并没有什么错,但它存在许多不足,如在类型安全和使用方便性上并没有多少好处,如果存在定义int值相同的变量,容易混淆,因此这种方式在枚举出现后并不提倡,现在我们利用枚举类型来重新定义上述的常量,定义周一到周日的常量
//枚举类型,使用关键字enum

    enum Day {MONDAY, TUESDAY, WEDNESDAY,THURSDAY, FRIDAY, SATURDAY, SUNDAY}

 

相当简洁,在定义枚举类型时我们使用的关键字是enum,与class关键字类似,只不过前者是定义枚举类型,后者是定义类类型。

枚举类型Day中分别定义了从周一到周日的值,这里要注意,值一般是大写的字母,多个值之间以逗号分隔。同时我们应该知道的是枚举类型可以像类(class)类型一样,定义为一个单独的文件,当然也可以定义在其他类内部,更重要的是枚举常量在类型安全性和便捷性都很有保证,如果出现类型问题编译器也会提示我们改进,但务必记住枚举表示的类型其取值是必须有限的,也就是说每个值都是可以枚举出来的,比如上述描述的一周共有七天。

以上是写法,写好后该如何使用呢?如下:

 public class EnumDemo {public static void main(String[] args){//直接引用Day day =Day.MONDAY;}}

 就像上述代码那样,直接引用枚举的值即可,这便是枚举类型的最简单模型。

三、Enum抽象类常见方法

Enum是所有 Java 语言枚举类型的公共基本类(注意Enum是抽象类),以下是它的常见方法:

在这里插入图片描述 

ordinal()方法,该方法获取的是枚举变量在枚举类中声明的顺序,下标从0开始,如日期中的MONDAY在第一个位置,那么MONDAY的ordinal值就是0,如果MONDAY的声明位置发生变化,那么ordinal方法获取到的值也随之变化,注意在大多数情况下我们都不应该首先使用该方法,毕竟它总是变幻莫测的。

compareTo(E o)方法则是比较枚举的大小,注意其内部实现是根据每个枚举的ordinal值大小进行比较的。

name()方法与toString()几乎是等同的,都是输出变量的字符串形式。

valueOf(Class enumType, String name)方法则是根据枚举类的Class对象和枚举名称获取枚举常量,注意该方法是静态的。

下面的代码演示了上述方法:

 

public class EnumDemo {public static void main(String[] args){//创建枚举数组Day[] days=new Day[]{Day.MONDAY, Day.TUESDAY, Day.WEDNESDAY,Day.THURSDAY, Day.FRIDAY, Day.SATURDAY, Day.SUNDAY};for (int i = 0; i <days.length ; i++) {System.out.println("day["+i+"].ordinal():"+days[i].ordinal());}System.out.println("-------------------------------------");//通过compareTo方法比较,实际上其内部是通过ordinal()值比较的System.out.println("days[0].compareTo(days[1]):"+days[0].compareTo(days[1]));System.out.println("days[0].compareTo(days[1]):"+days[0].compareTo(days[2]));//获取该枚举对象的Class对象引用,当然也可以通过getClass方法Class<?> clazz = days[0].getDeclaringClass();System.out.println("clazz:"+clazz);System.out.println("-------------------------------------");//name()System.out.println("days[0].name():"+days[0].name());System.out.println("days[1].name():"+days[1].name());System.out.println("-------------------------------------");System.out.println("days[0].toString():"+days[0].toString());System.out.println("days[1].toString():"+days[1].toString());System.out.println("-------------------------------------");Day d=Enum.valueOf(Day.class,days[0].name());Day d2=Day.valueOf(Day.class,days[0].name());System.out.println("d:"+d);System.out.println("d2:"+d2);}

 

六、枚举的进阶用法

向enum类添加方法与自定义属性和构造函数 重新定义一个日期枚举类,带有desc成员变量描述该日期的对于中文描述,同时定义一个getDesc方法,返回中文描述内容,自定义私有构造函数,在声明枚举实例时传入对应的中文描述,代码如下:

public enum Day2 {MONDAY("星期一",1),TUESDAY("星期二",2),WEDNESDAY("星期三",3),THURSDAY("星期四",4),FRIDAY("星期五",5),SATURDAY("星期六",6),SUNDAY("星期日",7);//记住要用分号结束private String desc;//文字描述private Integer code; //对应的代码/*** 私有构造,防止被外部调用* @param desc*/private Day2(String desc,Integer code){this.desc=desc;this.code=code;}/*** 定义方法,返回描述,跟常规类的定义没区别* @return*/public String getDesc(){return desc;}/*** 定义方法,返回代码,跟常规类的定义没区别* @return*/public int getCode(){return code;}public static void main(String[] args){for (Day2 day:Day2.values()) {System.out.println("name:"+day.name()+",desc:"+day.getDesc());}}

 输出结果:

name:MONDAY,desc:星期一name:TUESDAY,desc:星期二name:WEDNESDAY,desc:星期三name:THURSDAY,desc:星期四name:FRIDAY,desc:星期五name:SATURDAY,desc:星期六name:SUNDAY,desc:星期日

 

http://www.hrbkazy.com/news/41271.html

相关文章:

  • 天津市招标投标信息网杭州网站seo优化
  • 郴州有什么好玩的地方简述seo
  • 贵阳网站搜索优化网站关键词优化公司哪家好
  • 怎么查网站开发语言注册网站流程
  • 网站开发哪里有培训b站推广引流最佳方法
  • 物流运输做网站的素材哪里有seo排名优化
  • 政府部门网站开发项目建设背景建设网站前的市场分析
  • 用wordpress作下载站点品牌网络推广方案
  • xml做网站源码网站统计工具有哪些
  • 盐城做网站spider net网站流量查询网站统计查询
  • 网站管理后台制作seo优化排名
  • 广州最近传染病情况关键词推广优化app
  • 建设一个公司网站需要什么知识短视频排名seo
  • 乌鲁木齐做网站推广seo优化网
  • 伊春北京网站建设优化系统软件
  • 南宁靠谱网站建设内容网站制作平台
  • 网站做专题主题该怎么选产品推广活动策划方案
  • 网站 建设app谷歌优化怎么做
  • 淄博临淄网站建设qq群推广引流免费网站
  • 做相关性分析的网站自动推广软件
  • 网站首页优化方案uc推广登录入口
  • 什么网站做的好看体验式营销案例
  • 昌平企业网站建设上海品牌推广公司
  • 怎么查寻一个网站做的竞价百度搜索排名规则
  • 专门做调研的网站一般网络推广应该怎么做
  • 经营购物网站网络营销推广优化
  • 做网站域名山东seo首页关键词优化
  • 重庆网站备案在那里抚顺网络推广
  • wordpress 建站公司怎样注册自己网站的域名
  • 政府网站集约化建设情况汇报seo下拉优化