原标题:初步理解Java枚举类型

一、枚举定义

枚举不能定义在静态方法中

一般自定义的枚举类型都属于Enum的子类型EnumType

它默认就有两个静态方法(类方法):values()和valueOf()

values()返回的是EnumType类型的实例数组

valueOf()返回的是EnumType类型的实例

二、举例:自定义Color枚举类型

Color{ WHITE, BLACK, GRAY }

Color c = Color.GRAY;

那么:

Color.valueOf("BLACK") == Color.BLACK == Color.values()[1]

因为它们返回的都是Color类型

c.toString() == c.name()

因为它们返回的是字符串

三、枚举的构造函数和成员变量

枚举的构造函数只能是private

枚举的成员变量则不受限制,但如果在枚举实例里面定义的方法需要访问枚举类型中的成员变量,则该成员变量至少要是protected,否则无法继承

package newpack17;

interface d{

public String getDeion();

public int getI();

}

public enum AnyEnum implements d{

Constants_A{

public String getDeion() {

return "我是枚举成员A";

}

public int getI() {

return i;

}

},

Constants_B{

public String getDeion() {

return "我是枚举成员B";

}

public int getI() {

return i;

}

},

Constants_E("枚举成员E",88){

public String getDeion() {

return this.str;

}

public int getI() {

return this.it;

}

},

Constants_C,

Constants_D{

public String getDeion() {

return "我是枚举成员D";

}

public int getI() {

return i;

}

};

private AnyEnum(String str,int i) {

this.str = str;

this.it=i;

}

private AnyEnum() {}

public String getDeion() {

return "我是枚举成员XXX";

}

public int getI() {

return 10000;

}

public int it; // protected也行,但不能是private

protected String str;

private static int i = 5; // 静态成员 public protected,private都行

public static void main(String[] args) {

for(int i = 0; i

System.out.println(AnyEnum.values()[i]+"调用getDeion()方法为:"+AnyEnum.values()[i].getDeion());

System.out.println(AnyEnum.values()[i]+"调用getI()方法为:"+AnyEnum.values()[i].getI());

}

}

责任编辑:

java enum private_初步理解Java枚举类型相关推荐

  1. 深圳java培训:怎样理解 Java 注解和运用注解编程?

    深圳java培训:怎样理解 Java 注解和运用注解编程? 注解和使用 先来看下概念首先从注释来看: 注释:给代码添加说明和解释,注释帮助开发人员理解程序.(Comment)说白点就是注释是给人看的. ...

  2. 【转】java提高篇(二)-----理解java的三大特性之继承

    [转]java提高篇(二)-----理解java的三大特性之继承 原文地址:http://www.cnblogs.com/chenssy/p/3354884.html 在<Think in ja ...

  3. Effective Java之对于实例控制,枚举类型优于readResolve(七十七)

    Object readResolve() 这个方法会紧挨着readObject()之后被调用,该方法的返回值将会代替原来反序列化的对象,而原来readObject()反序列化的对象将会立即丢弃. re ...

  4. Effective Java之用私有构造器或者枚举类型强化Singleton属性(三)

    1.饿汉式加载 类加载时就创建 public class MaYun { private static Mayun instance = new Mayun(); private static get ...

  5. java 类 null_深入理解java中的null“类型”

    本文研究的主要是java中的null"类型"的相关实例,具体介绍如下. 先给出一道简单的null相关的题目,引发我们对null的探讨,后面会根据官方语言手册对null"类 ...

  6. JAVA反射机制初步理解

    Java中我们这样声明一个类,如人类 package cn.com.lcx.test;public class Person {public String sex = "男";pr ...

  7. java 对象压缩_理解Java对象:要从内存布局及底层机制说起,话说....

    前言 大家好,又见面了,今天是JVM专题的第二篇文章,在上一篇文章中我们说了Java的类和对象在JVM中的存储方式,并使用HSDB进行佐证,没有看过上一篇文章的小伙伴可以点这里:< 这篇文章主要 ...

  8. c语言枚举类型enum用法参数,C语言枚举类型(Enum)

    在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等. 以每周七天为例, ...

  9. java 注解_怎样理解 Java 注解和运用注解编程?

    怎样理解 Java 注解和运用注解编程? 注解和使用 先来看下概念首先从注释来看: 注释:给代码添加说明和解释,注释帮助开发人员理解程序.(Comment)说白点就是注释是给人看的. 注解:给代码添加 ...

  10. 如何理解java反射_怎么理解java反射

    怎么理解java反射? 概述 Java 反射是可以让我们在运行时获取类的方法.属性.父类.接口等类的内部信息的机制.也就是说,反射本质上是一个"反着来"的过程.我们通过new创建一 ...

最新文章

  1. Unix/Linux提权漏洞快速检测工具unix-privesc-check
  2. 使用.Net平台构建企业应用系统场(下)
  3. linux删除之前的文件在哪里,Linux下,如何将最后修改时间在某个时间之前的文件删除去?...
  4. Spring AOP根据JdbcTemplate方法名动态设置数据源
  5. 记一次SAP开发工程师给微软Azure报incident的体验
  6. 静态页面之间的转发与json与ajax做到动态数据
  7. 深度模型压缩论文(02)- BlockSwap: Fisher-guided Block Substitution for Network Compression
  8. Soft Skill
  9. 【Spring】Spring hibernate JSR-303 Validator 自定义参数校验器
  10. 20169219 使用Metaspoit攻击MS08-067实验报告
  11. 【jQuery笔记Part3】01-jQuery-each遍历
  12. css中的.clearfix是什么意思?
  13. 「兼容M1」iZotope RX 9 Advanced for Mac - 音频修复工具
  14. 实验三|Python 企业营运能力分析
  15. 用project做成本概述报表
  16. 互联网巨头介入P2P网贷的潜在风险
  17. 【Java----函数(function)】
  18. c语言反三角函数值域,反三角函数的定义域和值域
  19. 可视化导论 - 第五章 时空数据可视化 - 学习笔记
  20. 您可以在哪里播放最喜欢的圣诞节特价商品

热门文章

  1. hdu 5038 (2014北京网络赛G 排序水题)
  2. 第一次工作面试(蘑菇街)
  3. 《Single Image Haze Removal Using Dark Channel Prior》一文中图像去雾算法的原理、实现、效果及其他。
  4. c html 转 pdf,HTML 转 PDF
  5. 正则校验 4位数字_推荐收藏,工作中常用的正则表达式总结
  6. 拓端tecdat|R语言社区检测算法可视化网络图:ggplot2绘制igraph对象分析物种相对丰度
  7. 拓端tecdat|R语言如何解决线性混合模型中畸形拟合(Singular fit)的问题
  8. 拓端tecdat|R语言中回归模型预测的不同类型置信区间应用比较分析
  9. (13)数据结构-先序中序还原二叉树
  10. C++中的->用于赋值