Java中的Enum枚举类型总结
废话不多说,直接上代码,该例子来源于:http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html
public enum Planet {
MERCURY (3.303e+23, 2.4397e6),
VENUS (4.869e+24, 6.0518e6),
EARTH (5.976e+24, 6.37814e6),
MARS (6.421e+23, 3.3972e6),
JUPITER (1.9e+27, 7.1492e7),
SATURN (5.688e+26, 6.0268e7),
URANUS (8.686e+25, 2.5559e7),
NEPTUNE (1.024e+26, 2.4746e7);
private final double mass; // in kilograms
private final double radius; // in meters
/*1、构造器:可以给常量赋予更多的属性,必须是private,可以保证使用者不能私自new一个Enum出来*/
Planet(double mass, double radius)
{
this.mass = mass;
this.radius = radius;
}
private double mass() { return mass; }
private double radius() { return radius; }
// universal gravitational constant (m3 kg-1 s-2)
public static final double G = 6.67300E-11;
//2、可以内定义丰富的方法*/
double surfaceGravity() {
return G * mass / (radius * radius);
}
public static void main(String[] args) {
/*3、方法values()返回所有的枚举类型的数组
*4、方法ordinal()返回在枚举列表中的默认位置(从0开始)
*5、针对Enum的toString()方面直接输出枚举名称
*6、方法name()返回枚举名称
*/
for (Planet p : Planet.values())
System.out.println("Name:"+p.name()+" Position:"+p.ordinal()+" P:"+p);
/*7、方法valueOf可以从Stirng名称返回Enum类型的枚举类型*/
System.out.println(Planet.valueOf("NEPTUNE").name());
/*8、再来一个使用数组的例子*/
System.out.println(Planet.values()[2].name());
}
}
输出结果如下:
Name:MERCURY Position:0 P:MERCURY
Name:VENUS Position:1 P:VENUS
Name:EARTH Position:2 P:EARTH
Name:MARS Position:3 P:MARS
Name:JUPITER Position:4 P:JUPITER
Name:SATURN Position:5 P:SATURN
Name:URANUS Position:6 P:URANUS
Name:NEPTUNE Position:7 P:NEPTUNE
NEPTUNE
EARTH
下面用javap命令反编译Planet.class
/*1、Enum本身是一个继承自java.lang.Enum的类
2、枚举成员都是public static final类型
3、可以看到values、valueOf的方法声明
*/
public final class javalearn.Planet extends java.lang.Enum<javalearn.Planet> {
public static final javalearn.Planet MERCURY;
public static final javalearn.Planet VENUS;
public static final javalearn.Planet EARTH;
public static final javalearn.Planet MARS;
public static final javalearn.Planet JUPITER;
public static final javalearn.Planet SATURN;
public static final javalearn.Planet URANUS;
public static final javalearn.Planet NEPTUNE;
public static final double G;
static {};
double surfaceGravity();
public static void main(java.lang.String[]);
public static javalearn.Planet[] values();
public static javalearn.Planet valueOf(java.lang.String);
}
Java中的Enum枚举类型总结的更多相关文章
- Python中模拟enum枚举类型的5种方法分享
这篇文章主要介绍了Python中模拟enum枚举类型的5种方法分享,本文直接给出实现代码,需要的朋友可以参考下 以下几种方法来模拟enum:(感觉方法一简单实用) 复制代码代码如下: # way1 ...
- Java中的enum枚举类
首先说说为什么要写这个enum枚举类吧,是群里有个新手问:怎样把enum类中的值遍历得到,其实自己用的也很少.自己也是确实不知道,于是我去网上搜了不少,总结了些,希望对大家有帮助:首先我说说怎样遍历枚 ...
- Java中的Enum(枚举)用法介绍
1. 关于Java Enum:学过C/C++等语言的人,应该都对Enum类型略知一二.Enum一般用来表示一组相同类型的常量.如性别.日期.月份.颜色等.对这些属性用常量的好处是显而易见的,不仅可以保 ...
- C# 中的 enum(枚举) 类型使用例子
一.需要根据数字获取中文名称,C# 代码里面出现if 或switch 判断语句,比如下面的类为test1.class //获取计算类型的值 string AggregateType = string. ...
- Java基础教程:枚举类型
Java基础教程:枚举类型 枚举类型 枚举是将一具有类似特性的值归纳在一起的方法.比如,我们可以将周一到周日设计为一个枚举类型.彩虹的七种颜色设计为一个枚举类型. 常量实现枚举 我们通过定义常量的方式 ...
- 如何使用Java中的Enum类
Java1.5 中出现了枚举类型.当一个值都在一个固定的范围内变化,那就可以使用 enum 类型来定义.比如说,一周有七天,一年有四季. 没有枚举类的时候,我们用常量来定义一组范围值的: public ...
- MVC3不能正确识别JSON中的Enum枚举值
一.背景 在MVC3项目里,如果Action的参数中有Enum枚举作为对象属性的话,使用POST方法提交过来的JSON数据中的枚举值却无法正确被识别对应的枚举值. 二.Demo演示 为了说明问题,我使 ...
- 深入掌握Java中的enum
对于要在程序中要表示有限种类的某事物,一般我们可以采用两种方式,一是使用:public static final String 常量:二是使用enum来表示.一般而言前者简单,但是不能够很好的提供更多 ...
- Java中的enum
package com.st.java; /** * ENUM枚举类型的使用 * @author Administrator * 2016年04月10日 */ public enum MoneyTyp ...
随机推荐
- linux epoll模型
原文:http://yjtjh.blog.51cto.com/1060831/294119 Linux I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数.Linux ...
- Android & Eclipse FAQ
一.eclipse中格式化代码快捷键Ctrl+Shift+F失效的解决办法 当我要格式化代码的时候,右键-source-format能够起效,但ctrl+shift+f不好使了. google之后来发 ...
- document.body.clientHeight与document.documentElement.clientHeight
当你的网页有: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...
- PHP.5-DIV+CSS布局网站首页实例
DIV+CSS布局网站首页实例 网站页面布局 http://www.sj33.cn/digital/wyll/201501/42379.html[页头.页脚.侧边栏和内容区域] #避免各浏览器对CSS ...
- 实验-hadoop开发环境部署
hadoop-0.20.2自带了eclipse插件,比如1.0.0和2.2.0就没有 1.windows下 1)把插件hadoop-0.20.2-eclipse-plugin.jar复制到eclips ...
- Face The Right Way
Face The Right Way Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 2564 Accepted: 117 ...
- c#导出Excel 使用EXCEL进程
private void exportExcel(string filename, string path,string title, List<ArchivedWcsTask> wcst ...
- python(6)-类
面向对象编程是一种编程方式,此编程方式的落地需要使用 "类" 和 "对象" 来实现,所以,面向对象编程其实就是对 "类" 和 "对 ...
- linux下svn命令常用操作
1.将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:s ...
- Eclipse去除jquery引入错误
之前在写Java项目时,总是出现引入jquery报错,虽然对其方法的应用没有什么影响,但是感觉难受,经过百度得到解决的方法: 第一步:去除eclipse的JS验证:将windows->prefe ...