文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Java1.5的Enum类型使用时需要注意什么

2023-06-03 04:55

关注

本篇内容主要讲解“Java1.5的Enum类型使用时需要注意什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java1.5的Enum类型使用时需要注意什么”吧!

注意点:
1。所有创建的枚举类型都扩展于 java.lang.Enum. Enum 是在J2SE 5.0里定义的一个新类, 它本身不是枚举类型.在创建枚举类型时,必须用enum关键字,不能直接地定义一个继承Enum的类来创建一个枚举类型,尽管所有创建的枚举类型实际上都是Enum 的子类.
2。枚举类型里定义的每一个值都是枚举类型的一个实例,缺省时都将映射到Enum(String name, int ordinal) 构造函数中.枚举类型可以使用参数为定义一些自己的构造函数。
另外要强调的两点:
一是这些枚举类型的构造函数都是私有的.它是不能被其它的类或者其它的枚举类型调用的. 而且这个私有修饰符是由编译器自动加的,如果我们定义这些构造函数时,在前面加上public 修饰符, 就会导致编译错误,
二是变量定义必须在枚举类型值定义之后
3。枚举类型每一个值都是public, static andfinal的.也就是说,这些值是唯一的而且一旦定义了是不能被重写或修改.而且尽管在枚举类型每一个值声明时没有出现static关键字,实际上值都是静态的, 而且我们不能在值前面加上static, public,final 修饰符
4。Switch语句里使用枚举类型时,一定不能在每一个枚举类型值的前面加上枚举类型的类名(case后面的值),否则编译器就会报错
5。在J2SE 5.0 的java.util 程序包中提供两个新类:EnumMap 和EnumSet,这两个类与枚举类型的结合应用可使以前非常繁琐的程序变得简单方便.EnumMap 类提供了java.util.Map接口的一个特殊实现,该接口中的键(key)是一个枚举类型
6。特定于常量的类主体 :
提到枚举类型可以定义自己的函数,其实更进一步,枚举类型的每一个值都可以实现枚举类型里定义的抽象函数

------------------------------------------
enum Size {
   Small(0.8),
   Medium(1.0),
   Large(1.2);
   private double pricingFactor; // 符合2.2的要求,变量定义必须在枚举类型值定义之后
   Size(double p) {
     pricingFactor = p;
   }
   public double getPricingFactor() {
     return pricingFactor;
   }
 }
---------------------------------------------
enum的预定义方法
完整的方法集合(E 表示枚举类型自身):
   * public int compareTo(E e)
   * public boolean equals(Object o)
   * public final ClassgetDeclaringClass()
   * public int hashCode()
   * public String name()
   * public int ordinal()
   * public String toString()
   * public static<T extends Enum> T valueOf(ClassenumType, String name)

一些方法看起来很熟悉,而其他一些方法则是特定于 Enum 类的。
compareTo()、equals() 和 hashCode() 方法是典型的 Object 和 Comparable 方法,其中,compareTo()报告声明元素的顺序。name() 和 ordinal() 方法返回构造函数参数,而 toString() 返回名称。

getDeclaringClass()和 valueOf() 方法需要稍多一些解释。getDeclaringClass() 方法类似于 Object 的 getClass()方法,但它没必要返回相同的类。根据这个方法的 Javadoc 的说明:对于具有特定于常量的类主体的 enum 常量,该方法返回的值可能不同于Object.getClass() 方法返回的值。

到此,相信大家对“Java1.5的Enum类型使用时需要注意什么”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯