博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java中的枚举类为何不能有public构造器
阅读量:5367 次
发布时间:2019-06-15

本文共 1339 字,大约阅读时间需要 4 分钟。

       声明:本博客为原创博客。未经同意。不得转载!原文链接为.

     从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);   }}

转载于:https://www.cnblogs.com/blfbuaa/p/6790194.html

你可能感兴趣的文章
函数递归与二分法
查看>>
struts2标签
查看>>
Git最佳实践
查看>>
strlen判断字符串长度要注意的事项
查看>>
javascript高级程序设计--第三章
查看>>
react之路:使用redux-immutable
查看>>
python---网络爬虫01
查看>>
Qt第一个小程序(使用vs2017开发)
查看>>
有用的工具平台收集(不断更新中)
查看>>
弄清java中的字节与字符
查看>>
mongo-查询(3)——关于null
查看>>
算法导论第六章堆排序(一)
查看>>
Android软件开发之发送短信与系统短信库解析
查看>>
Google 发布 Android 性能优化典范
查看>>
软件工程之基于快速原型与面向对象的统一过程的软件系统分析与设计方法
查看>>
Spring -09 -在Spring工程 中加载 properties 文件 -为某个属性添加注解赋初值
查看>>
[游戏模版8] Win32 透明贴图
查看>>
三十二、http与www服务介绍
查看>>
简单的四则运算器程序
查看>>
这里有一篇简单易懂的webSocket 快到碗里来~
查看>>