从Java 5開始有了枚举类,须要注意的是enum定义的类默认继承的是java.lang.Enum类而不是Object类。

同一时候注意枚举类不能派生子类(类的默认修饰符为final)。其原因基于它仅仅有private构造器。那为什么要设计成这样呢?

事实上非常easy想明确,所谓枚举类就是有包括有固定数量实例(而且实例的值也固定)的特殊类,假设其含有public构造器,那么在类的外部就能够通过这个构造器来新建实例,显然这时实例的数量和值就不固定了,这与定义枚举类的初衷相矛盾,为了避免这样的形象。就对枚举类的构造器默认使用private修饰。假设为枚举类的构造器显式指定其他訪问控制符,则会编译出错。

另外。注意枚举类的全部实例必须在其首行显式列出,否则它不能产生实例。

例如以下是一个使用枚举类的经典演示样例:

import java.util.*;

enum Planet

{

MERCURY,VENUS,EARTH,MARS,JUPITER,SATURN,URANUS,NEPTUNE

}

public class EnumSample

{

public void flyTo(Planet planet)

{

String destination="";

switch(planet)

{

case MERCURY:

destination="水星";

break;

case VENUS:

destination="金星";

break;

case EARTH:

destination="地球";

break;

case MARS:

destination="火星";

break;

case JUPITER:

destination="木星";

break;

case SATURN:

destination="土星";

break;

case URANUS:

destination="天王星";

break;

case NEPTUNE:

destination="海王星";

break;

}

System.out.println("The destination is "+destination);

}

public static void main(String[]args)

{

EnumSample sample=new EnumSample();

sample.flyTo(Planet.NEPTUNE);

}

}

java 枚举不能继承_Java中的枚举类为何不能有public构造器相关推荐

  1. java 枚举的继承_java中枚举类可以被继承吗?

    java 枚举类 java中,使用关键字enum来定义枚举类,枚举类是一个特殊的类,大部分功能和普通类是一样的,区别为: ● 枚举类继承了java.lang.Enum类,而不是默认的Object类.而 ...

  2. java枚举类型定义_java中的枚举类型怎么定义?

    展开全部 Enum作为Sun全新引进的一个关键字,看起来很象是特殊的class, 它也可以有自62616964757a686964616fe59b9ee7ad9431333236366331己的变量, ...

  3. java long类型判断_Java中的long类型和Long类型比较大小

    Java中我们经常要做一些判断,而对于判断的话,用的最多的便是">"."=="." Java中Long和long的区别 Java的数据类型分为两 ...

  4. java matcher group方法_Java中正则表达式相关类中Matcher.group()方法

    ##简介 最近在做一个项目,需要使用matcher.group()方法匹配出需要的内容. ##分组 正则表达式 AA((A)(B(C))) group()方法是针对()来说的,group(0)指的是整 ...

  5. java 复数的除法_Java中 如果复数类成员是int型,怎么实现两个复数相除

    (1) 复数类Complex 的属性有: RealPart :    int型,代表复数的实数部分 ImaginPart :  int型,代表复数的虚数部分 package applet; impor ...

  6. java 枚举_Java中的枚举类型(Enum)详解

    文章前记 程序员工作久了便可能整日忙碌于"增删改查"中,迷失方向,毫无进步. 该公众号致力于分享软件开发相关的原创干货,助你完成从程序员到架构师的进阶之路! 努力!做一个NB的Co ...

  7. java定义枚举并赋值_java中枚举的特性是什么?如何赋值?

    上次已经为大家介绍过java枚举的概念是什么的主要内容了.今天再来为大家介绍一些相关的知识,也是关于java枚举的一些内容,也就是它的特性以及如何赋值,一起来了解一下吧. 首先说一下,java中枚举的 ...

  8. java 7种枚举类型_Java中的枚举类型

    枚举类比较用 == 还是 equals,有啥区别? java 枚举值比较用 == 和 equals 方法没啥区别,两个随便用都是一样的效果.因为枚举 Enum 类的 equals 方法默认实现就是通过 ...

  9. java枚举的特点_Java中有些好的特性(二):枚举

    前言 我在写上一篇时,开始选了一个很土的名字"Java超过C#的地方",然后引起了某些同学的不满,后来修改了个名.我在这里再次申明一下,我没有贬低任何语言之意,纯粹是从一个.NET ...

最新文章

  1. 前端代码规范-CSS
  2. Java 9.while语句
  3. mysql倍增表的内容,mysql - DATEDIFF不会在触发器内倍增 - SO中文参考 - www.soinside.com...
  4. 数控铣削图案及编程_数控铣削简单图案编程
  5. bzoj1715[Usaco2006 Dec]Wormholes 虫洞
  6. 存储安全与数据恢复基础手册-服务器篇
  7. WPF 分页控件的简单实现
  8. 串口助手驱动_STM32Cube22(补充) | 使用硬件I2C驱动OLED(SSD1306)
  9. sqlalchemy基本类型
  10. c语言实现 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
  11. Mapx自带的工具的理解
  12. 程序员初学者应该如何自学编程
  13. K-mer特征提取one-hot编码
  14. matlab 中gradient()函数的用法
  15. nginx.conf配置外部 .conf文件
  16. 交换机console接口设置密码
  17. 苹果自带地图包括路线规划
  18. 哪五种人不适合学编程?
  19. Istio-智能DNS
  20. java向上转型与向下转型

热门文章

  1. altium designer快捷键大全
  2. mysql的权限管理
  3. 如何理解 if __name__ == “__main__“:
  4. 伺服系统 计算机仿真,减摇鳍电伺服系统的计算机仿真研究-应用科技-哈尔滨工程大学.PDF...
  5. java hashset 源码_Java集合:HashSet的源码分析
  6. 为什么TCP连接不可靠
  7. ahjesus自定义隐式转换和显示转换
  8. 了解了这些才能开始发挥jQuery的威力
  9. 常用的 iptables配置脚本
  10. mysql-----触发器