java enum用法
基本用法
enum Day {
SUNDAY, MONDAY, TUESDAY, WENDSDAY, THURSDAY, FRIDAY, SATURDAY;
}
枚举是常量,所以应该用大写。
枚举是对象
枚举隐含地继承了java.lang.Enum,所以它具有java.lang.Enum的属性和方法。遍历枚举:
public class Main {
public static void main(String[] args) {
for(Day day:Day.values()) {
System.out.println(day);
}
}
}
枚举可以带字段和方法,以下示例来自官方The Java™ Tutorials
public enum EnumDemo {
AOBJECT("field one", "field two"); private String field1;
private String field2; EnumDemo(String val1, String val2){
this.field1 = val1;
this.field2 = val2;
} public void printFields(){
System.out.println(this.field1);
System.out.println(this.field2);
} public static void main(String[] args) {
EnumDemo.AOBJECT.printFields();
}
}
以下现实中的示例来自官方的Java Tutorial:
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 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; double surfaceGravity() {
return G * mass / (radius * radius);
} double surfaceWeight(double otherMass) {
return otherMass * surfaceGravity();
} public static void main(String[] args) {
Double earthWeight = 120;
for(Planet p: Planet.values()){
System.out.println(p.surfaceGravity());
System.out.println(p.surfaceWeight(earthWeight/EARTH.surfaceGravity()));
}
}
}
枚举是singleton,可以用枚举来构建一个Singleton
public enum Singleton {
INSTANCE(new String[]{"arg1", "arg2"}); String[] myArgs;
Singleton(String[] args){
this.myArgs = args;
} public static Singleton getInstance(){
return INSTANCE;
} public static void main(String[] args) {
for(String arg : INSTANCE.myArgs)
System.out.println(arg);
}
}
java enum用法的更多相关文章
- Java Enum用法详解
		
Java Enum用法详解 用法一:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举 ...
 - java Enum 用法示例
		
public enum MyEnum { Monday, Tuesday, Wednesday, Thursady, Friday, Saturday, Sunday; public static v ...
 - java enum 用法
		
/* * Hibernate, Relational Persistence for Idiomatic Java * * Copyright (c) 2010, Red Hat Inc. or th ...
 - Java Enum解析【转】
		
Enum用法: 1:常量 在JDK1.5 之前,我们定义常量都是: public static fianl.... .现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多 ...
 - MVC图片上传详解   IIS (安装SSL证书后) 实现 HTTP 自动跳转到 HTTPS  C#中Enum用法小结  表达式目录树  “村长”教你测试用例  引用provinces.js的三级联动
		
MVC图片上传详解 MVC图片上传--控制器方法 新建一个控制器命名为File,定义一个Img方法 [HttpPost]public ActionResult Img(HttpPostedFile ...
 - 如何使用Java Enum
		
简单的用法:JavaEnum简单的用法一般用于代表一组常用常量,可用来代表一类相同类型的常量值.如: 性别: public enum SexEnum { male, female; } 颜色: pub ...
 - (转)java enum枚举
		
转载自: 原理:http://singleant.iteye.com/blog/686349 应用:http://www.cnblogs.com/happyPawpaw/archive/2013/04 ...
 - 你真的了解java的lambda吗?- java lambda用法与源码分析
		
你真的了解java的lambda吗?- java lambda用法与源码分析 转载请注明来源:cmlanche.com 用法 示例:最普遍的一个例子,执行一个线程 new Thread(() -> ...
 - java enum
		
小谈Java Enum的多态性 博客分类: Java JavaAppleJDKJVMIDEA Enum+多态,我没说错,不过Enum是不可以被继承的,也不可以继承自别人,只是能实现接口而已,何谈多态 ...
 
随机推荐
- Android框架 与 源码结构
			
一. Android 框架 Android框架层级 : Android 自下 而 上 分为 4层; -- Linux内核层; -- 各种库 和 Android运行环境层; -- 应用框架层; -- 应 ...
 - UML建模语言入门 -- 静态图详解 类图 对象图 包图 静态图建模实战
			
发现个好东西思维导图, 最近开始用MindManager整理博客 . 作者 :万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article/deta ...
 - 由作业题引发对C++引用的一些思考
			
首先分析一段代码: #include <bits/c++config.h> #include <ostream> #include <iostream> #incl ...
 - Chrome 的扩展功能
			
chrome浏览器修改cookie edit this cookie chrome插件是一款专为谷歌内核浏览器打造的cookie插件,安装谷歌浏览器edit this cookie插件后你就可以在浏览 ...
 - 浅析Docker容器的应用场景
			
本文来自网易云社区 作者:娄超 过去几年开源界以openstack为代表的云计算持续火了好久,这两年突然又冒出一个叫Docker的容器技术,其发展之迅猛远超预料.网上介绍Docker容器的文章已经很多 ...
 - springBoot定制内嵌的Tomcat
			
此篇仅介绍配置方式,详细配置内容百度查阅 工程结构: 可以通过配置的方式设置参数,如下 application.properties #配置tomcat端口 # server.port= 8888 # ...
 - 【bzoj3754】Tree之最小方差树  最小生成树
			
题目描述 给出一张无向图,求它的一棵生成树,使得选出的所有边的方差最小.输出这个最小方差. 输入 第一行两个正整数N,M 接下来M行,每行三个正整数Ui,Vi,Ci N<=100,M<=2 ...
 - hdu 2686 Matrix && hdu 3367 Matrix Again (最大费用最大流)
			
Matrix Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Subm ...
 - 【刷题】洛谷 P3901 数列找不同
			
题目描述 现有数列 \(A_1,A_2,\cdots,A_N\) ,Q 个询问 \((L_i,R_i)\) , \(A_{Li} ,A_{Li+1},\cdots,A_{Ri}\) 是否互不相同 输入 ...
 - POJ1741:Tree——题解+树分治简要讲解
			
http://poj.org/problem?id=1741 题目大意:给一棵树,求点对间距离<=k的个数. ———————————————————— 以这道题为例记录一下对于树分治的理解. 树 ...