java enum private_初步理解Java枚举类型
原标题:初步理解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枚举类型相关推荐
- 深圳java培训:怎样理解 Java 注解和运用注解编程?
深圳java培训:怎样理解 Java 注解和运用注解编程? 注解和使用 先来看下概念首先从注释来看: 注释:给代码添加说明和解释,注释帮助开发人员理解程序.(Comment)说白点就是注释是给人看的. ...
- 【转】java提高篇(二)-----理解java的三大特性之继承
[转]java提高篇(二)-----理解java的三大特性之继承 原文地址:http://www.cnblogs.com/chenssy/p/3354884.html 在<Think in ja ...
- Effective Java之对于实例控制,枚举类型优于readResolve(七十七)
Object readResolve() 这个方法会紧挨着readObject()之后被调用,该方法的返回值将会代替原来反序列化的对象,而原来readObject()反序列化的对象将会立即丢弃. re ...
- Effective Java之用私有构造器或者枚举类型强化Singleton属性(三)
1.饿汉式加载 类加载时就创建 public class MaYun { private static Mayun instance = new Mayun(); private static get ...
- java 类 null_深入理解java中的null“类型”
本文研究的主要是java中的null"类型"的相关实例,具体介绍如下. 先给出一道简单的null相关的题目,引发我们对null的探讨,后面会根据官方语言手册对null"类 ...
- JAVA反射机制初步理解
Java中我们这样声明一个类,如人类 package cn.com.lcx.test;public class Person {public String sex = "男";pr ...
- java 对象压缩_理解Java对象:要从内存布局及底层机制说起,话说....
前言 大家好,又见面了,今天是JVM专题的第二篇文章,在上一篇文章中我们说了Java的类和对象在JVM中的存储方式,并使用HSDB进行佐证,没有看过上一篇文章的小伙伴可以点这里:< 这篇文章主要 ...
- c语言枚举类型enum用法参数,C语言枚举类型(Enum)
在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等. 以每周七天为例, ...
- java 注解_怎样理解 Java 注解和运用注解编程?
怎样理解 Java 注解和运用注解编程? 注解和使用 先来看下概念首先从注释来看: 注释:给代码添加说明和解释,注释帮助开发人员理解程序.(Comment)说白点就是注释是给人看的. 注解:给代码添加 ...
- 如何理解java反射_怎么理解java反射
怎么理解java反射? 概述 Java 反射是可以让我们在运行时获取类的方法.属性.父类.接口等类的内部信息的机制.也就是说,反射本质上是一个"反着来"的过程.我们通过new创建一 ...
最新文章
- Unix/Linux提权漏洞快速检测工具unix-privesc-check
- 使用.Net平台构建企业应用系统场(下)
- linux删除之前的文件在哪里,Linux下,如何将最后修改时间在某个时间之前的文件删除去?...
- Spring AOP根据JdbcTemplate方法名动态设置数据源
- 记一次SAP开发工程师给微软Azure报incident的体验
- 静态页面之间的转发与json与ajax做到动态数据
- 深度模型压缩论文(02)- BlockSwap: Fisher-guided Block Substitution for Network Compression
- Soft Skill
- 【Spring】Spring hibernate JSR-303 Validator 自定义参数校验器
- 20169219 使用Metaspoit攻击MS08-067实验报告
- 【jQuery笔记Part3】01-jQuery-each遍历
- css中的.clearfix是什么意思?
- 「兼容M1」iZotope RX 9 Advanced for Mac - 音频修复工具
- 实验三|Python 企业营运能力分析
- 用project做成本概述报表
- 互联网巨头介入P2P网贷的潜在风险
- 【Java----函数(function)】
- c语言反三角函数值域,反三角函数的定义域和值域
- 可视化导论 - 第五章 时空数据可视化 - 学习笔记
- 您可以在哪里播放最喜欢的圣诞节特价商品
热门文章
- hdu 5038 (2014北京网络赛G 排序水题)
- 第一次工作面试(蘑菇街)
- 《Single Image Haze Removal Using Dark Channel Prior》一文中图像去雾算法的原理、实现、效果及其他。
- c html 转 pdf,HTML 转 PDF
- 正则校验 4位数字_推荐收藏,工作中常用的正则表达式总结
- 拓端tecdat|R语言社区检测算法可视化网络图:ggplot2绘制igraph对象分析物种相对丰度
- 拓端tecdat|R语言如何解决线性混合模型中畸形拟合(Singular fit)的问题
- 拓端tecdat|R语言中回归模型预测的不同类型置信区间应用比较分析
- (13)数据结构-先序中序还原二叉树
- C++中的->用于赋值